pandas - 尝试在 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.
有人可以帮忙吗?
解决方案
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 应用于系列的每个元素。
此外,您弄错了格式说明符,请参阅此处以供参考。
推荐阅读
- woocommerce - WooCommerce 产品图像交换在翻转时隐藏第一张图像
- javascript - 图片需要很长时间才能加载
- python - virtualenv 在 Windows 上无法正常工作
- android - 以编程方式连接 vpn 为 android ios 做出本机反应
- python - 显示关系的图表 - 多个非数字列
- css - CSS选择跨度
- sql - 未触发 SQL 继续处理程序
- c# - 抛出 StackOverflow 异常 - 不知道如何修复它
- python-3.x - matplotlib 图例位置令人费解
- unit-testing - 作为接口访问的单例的单元测试