分割日期时间字符串(非常规格式)并拉出月份

时间:2019-08-30 17:52:22

标签: python pandas dataframe datetime

我有一个带有日期时间字符串但不是传统日期时间格式的数据框。我想将日期与时间分隔成两个单独的列。然后最终也将月份分开。

日期/时间字符串如下所示: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

1 个答案:

答案 0 :(得分:2)

只需使用pandas本身即可完成此操作。您可以先通过传递Datedatetime列转换为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


pd.to_datetime的文档中,您可以看到一个参数:

  

utc:布尔值,默认为无

     

如果返回True,则返回UTC DatetimeIndex(也转换所有支持tz的datetime.datetime对象)。