我有一个来自 Pandas 的 DataFrame:
import pandas as pd
inp = [{'date':'31/03/2021 11:50:12 PM', 'value':100},
{'date':'1/4/2021 0:53','value':110},
{'date':'2/04/2021 9:40:12 AM', 'value':200}]
df = pd.DataFrame(inp)
print(f'{df}\n')
print(df.dtypes)
输出:
date value
0 '31/03/2021 11:50:12 PM' 100
1 '1/4/2021 0:53' 110
2 '2/04/2021 9:40:12 AM' 100
date object
value int64
dtype: object
现在我想将“日期”列从对象转换为日期时间类型,以便输出如下:
date value
0 2021-03-31 23:50:12 100
1 2021-04-01 00:53:00 110
2 2021-04-02 09:40:12 100
date datetime64[ns]
value int64
dtype: object
我已尝试运行此代码:
df['date'] = pd.to_datetime(df['date'])
print(f'{df}\n')
print(df.dtypes)
但输出如下:
date value
0 2021-03-31 23:50:12 100
1 2021-01-04 00:53:00 110
2 2021-02-04 09:40:12 100
date datetime64[ns]
value int64
dtype: object
如您所见,panda to_datetime
函数将 dd/mm/yyyy hh:mm
格式的列值中的第一个数字误认为是月份。我想知道如何将列转换为 datetype
格式,同时还要考虑月和日数字的不同位置。
答案 0 :(得分:0)
嗨,用这个代码试试吧。
df['date'] = pd.to_datetime(df['date'], format='%Y%m%d%H%M%S')