"Bad directive" 转换为 Pandas 日期时间时出现值错误
"Bad directive" value error when converting to Pandas datetime
我有一个 Pandas 数据框 df
,如下所示:
df = pd.DataFrame({'timestamp' : ['Wednesday, Apr 4/04/22 at 17:02',
'Saturday, Apr 4/23/22 at 15:45'],
'foo' : [1, 2]
})
df
timestamp foo
0 Wednesday, Apr 4/04/22 at 17:02 1
1 Saturday, Apr 4/23/22 at 15:45 2
我正在尝试将 timestamp
列转换为日期时间对象,以便我可以添加 day_of_week
列。
我的尝试:
df['timestamp'] = pd.to_datetime(df['timestamp'],
format='%A, %b %-m/%-d/%y at %H:%M')
df['day_of_week'] = df['timestamp'].dt.day_name()
错误是:
ValueError: '-' is a bad directive in format '%A, %b %-m/%-d/%y at %H:%M'
如有任何帮助,我们将不胜感激。谢谢!
只使用没有-
的格式:
df['timestamp'] = pd.to_datetime(df['timestamp'],
format='%A, %b %m/%d/%y at %H:%M')
df['day_of_week'] = df['timestamp'].dt.day_name()
注意。 to_datetime
在提供的数据上非常灵活,请注意如何忽略不正确的星期几。
输出:
timestamp foo day_of_week
0 2022-04-04 17:02:00 1 Monday
1 2022-04-23 15:45:00 2 Saturday
我有一个 Pandas 数据框 df
,如下所示:
df = pd.DataFrame({'timestamp' : ['Wednesday, Apr 4/04/22 at 17:02',
'Saturday, Apr 4/23/22 at 15:45'],
'foo' : [1, 2]
})
df
timestamp foo
0 Wednesday, Apr 4/04/22 at 17:02 1
1 Saturday, Apr 4/23/22 at 15:45 2
我正在尝试将 timestamp
列转换为日期时间对象,以便我可以添加 day_of_week
列。
我的尝试:
df['timestamp'] = pd.to_datetime(df['timestamp'],
format='%A, %b %-m/%-d/%y at %H:%M')
df['day_of_week'] = df['timestamp'].dt.day_name()
错误是:
ValueError: '-' is a bad directive in format '%A, %b %-m/%-d/%y at %H:%M'
如有任何帮助,我们将不胜感激。谢谢!
只使用没有-
的格式:
df['timestamp'] = pd.to_datetime(df['timestamp'],
format='%A, %b %m/%d/%y at %H:%M')
df['day_of_week'] = df['timestamp'].dt.day_name()
注意。 to_datetime
在提供的数据上非常灵活,请注意如何忽略不正确的星期几。
输出:
timestamp foo day_of_week
0 2022-04-04 17:02:00 1 Monday
1 2022-04-23 15:45:00 2 Saturday