使用 Python Pandas 更改 csv 的日期列

Changing date column of csv with Python Pandas

我有一个这样的 csv 文件:

Tarih、Şimdi、Açılış、Yüksek、Düşük、Hac.、Fark %
31.05.2022, 8,28, 8,25, 8,38, 8,23, 108,84M, 0,61%

(一千多行)

我想这样改:

Tarih、Şimdi、Açılış、Yüksek、Düşük、Hac.、Fark %
5/31/2022, 8.28, 8.25, 8.38, 8.23, 108.84M, 0.61%

特别是“日期”格式是Day.Month.Year,我需要把它变成Month/Day/Year格式。

我这样写代码:

import pandas as pd
import numpy as np
import datetime

data=pd.read_csv("qwe.csv", encoding= 'utf-8')

df.Tarih=df.Tarih.str.replace(".","/")
df.Şimdi=df.Şimdi.str.replace(",",".")
df.Açılış=df.Açılış.str.replace(",",".")
df.Yüksek=df.Yüksek.str.replace(",",".")
df.Düşük=df.Düşük.str.replace(",",".")

for i in df['Tarih']:
    q = 1
    datetime_obj = datetime.datetime.strptime(i, "%d/%m/%Y")
    df['Tarih'].loc[df['Tarih'].values == q] = datetime_obj

但是我代码中的“for”循环不起作用。我需要这方面的帮助。谢谢

只要看看转换日期,您可以导入带有参数 pd.read_csv 的日期时间对象,然后通过对每个条目应用 strftime 来转换为您想要的格式。

如果我有以下tmp.csv:

date, value
30.05.2022, 4.2
31.05.2022, 42
01.06.2022, 420
import pandas as pd
df = pd.read_csv('tmp.csv', parse_dates=['date'], dayfirst=True)
df['date'] = df['date'].dt.strftime('%m/%d/%Y')
print(df)

输出:

         date   value
0  05/30/2022     4.2
1  05/31/2022    42.0
2  06/01/2022   420.0