微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 Python 转换数据帧中的日期格式?

如何解决如何使用 Python 转换数据帧中的日期格式?

我有一个由各种列组成的数据框,其中一列由日期组成。目前,日期为 mm/dd/yyyy,我需要将它们更改为 dd/mm/yyyy。

原始数据集有 478 行。我创建了一个 for 循环来更改日期格式并覆盖原始单元格值,以便能够在单元格中使用新的日期格式。但是,我创建的 for 循环将实际日期更改为不同的日期原始行,然后附加一个带有转换日期的全新行。运行循环后,数据帧从 478 行增长到 800 行。

当我一行一行地运行它时,我可以看到日期被正确转换。我不确定为什么在打印最终 df 时,它不仅显示完全不同的日期,而且还显示其他列中带有 NaN 值的附加行和转换日期。

row = 0
for i in df['date']:
    x = i[3:5]+'-'+i[0:2]+'-'+i[6:10]
    df.loc['date'] = x 
    row += 1;
print (df)

解决方法

import pandas as pd
dates = ['05/01/2021','05/02/2021','05/03/2021','05/04/2021','05/05/2021']
values = [1,2,3,4,5]

df = pd.DataFrame({'dates': dates,'values': values})

df['to_datetime'] = pd.to_datetime(df['dates'])

# this is converted date
df['target_date'] = '0'+ df['to_datetime'].dt.day.astype(str) + '/' + \
'0'+ df['to_datetime'].dt.month.astype(str) + '/' + 
df['to_datetime'].dt.year.astype(str)
,

使用 datetime 库转换日期格式并使用 lambda 函数避免遍历所有值。

试试这个:

from datetime import datetime
df["date"] = df["date"].apply(lambda x: x.strftime("%d/%m/%Y"))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。