我有一个带有日期时间字符串但不是传统日期时间格式的数据框。我想将日期与时间分隔成两个单独的列。然后最终也将月份分开。
日期/时间字符串如下所示:2019-03-20T16:55:52.981-06:00
>>> df.head()
Date Score
2019-03-20T16:55:52.981-06:00 10
2019-03-07T06:16:52.174-07:00 9
2019-06-17T04:32:09.749-06:003 1
我尝试了此操作,但出现类型错误:
df['Month'] = pd.DatetimeIndex(df['Date']).month
答案 0 :(得分:2)
只需使用pandas
本身即可完成此操作。您可以先通过传递Date
将datetime
列转换为utc = True
:
df['Date'] = pd.to_datetime(df['Date'], utc = True)
然后使用dt.month
提取月份:
df['Month'] = df['Date'].dt.month
输出:
Date Score Month
0 2019-03-20 22:55:52.981000+00:00 10 3
1 2019-03-07 13:16:52.174000+00:00 9 3
2 2019-06-17 10:32:09.749000+00:00 1 6
utc:布尔值,默认为无
如果返回True,则返回UTC DatetimeIndex(也转换所有支持tz的datetime.datetime对象)。