Not*_*ame 4 python datetime pandas
我正在尝试将 Pandas DataFrame 中的日期列转换为日期时间格式。如果我不指定日期格式,它可以正常工作,但在代码中,由于时间格式不同,我会遇到问题。
10/10/2019 6:00
欧洲日期格式的原始日期如下所示。
我尝试像这样指定格式:
df['PeriodStartDate'] = pd.to_datetime(df['PeriodStartDate'],
format="%d/%m/%Y")
Run Code Online (Sandbox Code Playgroud)
这会导致错误:unconverted data remains 6:00
然后,我尝试更新格式指令,但format="%d/%m/%Y %-I/%H"
出现了另一个错误:'-' is a bad directive in format '%d/%m/%Y %-I/%H'
尽管我认为to_datetime
使用相同的指令,并且strftime
在后者中%-I
是允许的。
沮丧中,我决定砍掉绳子的末端,因为我真的不需要几小时和几分钟:
df['PeriodStartDate'] = df['PeriodStartDate'].str[:10]
df['PeriodStartDate'] = pd.to_datetime(df['PeriodStartDate'],
format="%d/%m/%Y")
Run Code Online (Sandbox Code Playgroud)
但这再次导致错误:ValueError: unconverted data remains:
这当然是因为某些日期有 9 位数字,例如3/10/2019 6:00
不太确定从这里去哪里。
格式%H:%M
就可以了(不要忘记:
中间的)
pd.to_datetime('10/10/2019 6:00', format="%m/%d/%Y %H:%M")
Out[1049]: Timestamp('2019-10-10 06:00:00')
pd.to_datetime('3/10/2019 18:00', format="%d/%m/%Y %H:%M")
Out[1064]: Timestamp('2019-10-03 18:00:00')
Run Code Online (Sandbox Code Playgroud)