datetime读取与实际值不同的格式



我正在尝试重新格式化csv文件上的日期时间模式:

原始日期格式:

DAY/MONTH/YEAR

预期结果:

YEAR/MONTH/DAY

rows = df['clock_now']is:

22/05/2022 12:16
22/05/2022 12:20
22/05/2022 12:21
22/05/2022 12:44
22/05/2022 12:47
22/05/2022 12:47
22/05/2022 12:51

下面是我的完整代码:

import pandas as pd
import datetime
filials= [
'base.csv',
'max.csv'
]
for filial in filials:
df = pd.read_csv(filial)
rows = df['clock_now']
for row in rows:
change_format = datetime.datetime.strptime(row, '%d/%m/%Y %H:%M')
final_format = change_format.strftime('%Y/%m/%d %H:%M')
df.loc[df['clock_now'] == row, 'clock_now'] = final_format
df.to_csv(filial, index=False)

返回此错误,说明其中一个值存在格式错误,但rows = df['clock_now']中没有'2022/05/22 12:47'值。

change_format = datetime.datetime.strptime(row, '%d/%m/%Y %H:%M')
File "C:UsersComputadorAppDataLocalProgramsPythonPython310lib_strptime.py", line 568, in _strptime_datetime
tt, fraction, gmtoff_fraction = _strptime(data_string, format)
File "C:UsersComputadorAppDataLocalProgramsPythonPython310lib_strptime.py", line 349, in _strptime
raise ValueError("time data %r does not match format %r" %
ValueError: time data '2022/05/22 12:47' does not match format '%d/%m/%Y %H:%M'

我错过了什么?

你可以试试这个,

dt_rows = pd.to_datetime(rows)
dt_rows = pd.Series(map(lambda dt:dt.strftime("%Y/%m/%d %H:%M"), dt_rows))

输出——

0    2022/05/22 12:20
1    2022/05/22 12:21
2    2022/05/22 12:44
3    2022/05/22 12:47
4    2022/05/22 12:47
5    2022/05/22 12:51
dtype: object

最新更新