首页 > 解决方案 > 尝试在 python 中解析日期时出错

问题描述

我有一个这样的数据集

df_NO2

  rec                             pm1 pm2p5   pm10
0 2019-05-31T13:42:27.514+00:00   1.8 43.8    3.5
1 2019-05-31T13:42:37.497+00:00   1.6 46.4    3.3
2 2019-05-31T13:42:47.497+00:00   1.8 88.4    4.5
3 2019-05-31T13:42:57.498+00:00   2.8 34.9    5.4
4 2019-05-31T13:43:07.499+00:00   2.9 93.8    6.9

我想将“rec”列的日期和时间格式更改为

df_NO2

         rec                    pm1 pm2p5   pm10
0   2019-05-31 13:42:27         1.8  43.8   3.5
1   2019-05-31 13:42:37         1.6  46.4   3.3
2   2019-05-31 13:42:47         1.8  88.4   4.5
3   2019-05-31 13:42:57         2.8  34.9   5.4
4   2019-05-31 13:43:07         2.9  93.8   6.9

我试过使用代码

import dateutil.parser

d = dateutil.parser.parse(df_NO2['rec'])
print(d.strftime('%yyyy-%mm-%dd %hh:%mm'))

但我收到一条错误消息

Parser must be a string or character stream, not Series.

有人可以帮忙吗?

标签: pandasdatetimeformatstrftime

解决方案


pd.to_datetime(df_NO2.rec).dt.strftime(%Y-%m-%d %H:%M)

输出:

0    2019-05-31 13:42
1    2019-05-31 13:42
2    2019-05-31 13:42
3    2019-05-31 13:42
4    2019-05-31 13:43

df_NO2['rec']返回 strftime 无法处理的整个列(系列)。相反,您需要将 strftime 应用于系列的每个元素。

此外,您弄错了格式说明符,请参阅此处以供参考。


推荐阅读