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

How to convert the date format in a dataframe using Python?

我有一个包含多个列的数据框,其中一列包含日期。目前,日期在 mm/dd/yyyy 中,我需要将它们更改为 dd/mm/yyyy。

原始数据集有 478 行。我创建了一个 for 循环来更改日期格式并覆盖原始单元格值,以便能够在 cell.However 中使用新的日期格式,我创建的 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"))