当前位置:  开发笔记 > 编程语言 > 正文

在熊猫中删除时区信息

如何解决《在熊猫中删除时区信息》经验,为你挑选了2个好方法。

我一直在努力从pandas数据框中的列中删除时区信息.我检查了以下问题,但它对我不起作用:

我可以将pandas DataFrame导出到Excel剥离tzinfo吗?

我使用tz_localize为datetime对象分配时区,因为我需要使用tz_convert转换为另一个时区.这会以"-06:00"的方式添加UTC偏移量.我需要摆脱这种偏移,因为当我尝试将数据框导出到Excel时会导致错误.

实际输出

2015-12-01 00:00:00-06:00

期望的输出

2015-12-01 00:00:00

我试图使用str()方法获取我想要的字符,但似乎tz_localize的结果不是字符串.到目前为止,我的解决方案是将数据帧导出到csv,读取文件,并使用str()方法获取我想要的字符.

有更简单的解决方案吗?



1> Diego Mora C..:

如果你的系列只包含日期时间,那么你可以这样做:

my_series.dt.tz_localize(None)

这将删除时区信息(它不会改变时间)并返回一系列天真的本地时间,例如可以使用to_excel()导出到excel.


如果pandas数据帧包含除日期时间之外的列,该怎么办?我收到类似"TypeError:index不是有效的DatetimeIndex或PeriodIndex"的错误

2> jezrael..:

也许帮助剥离最后6个字符:

print df
                    datetime
0  2015-12-01 00:00:00-06:00
1  2015-12-01 00:00:00-06:00
2  2015-12-01 00:00:00-06:00

df['datetime'] = df['datetime'].astype(str).str[:-6]
print df
              datetime
0  2015-12-01 00:00:00
1  2015-12-01 00:00:00
2  2015-12-01 00:00:00


您可以像在这个答案中一样使用`replace(tzinfo = None)`:http://stackoverflow.com/questions/10944047/remove-pytz-timezone/#answer-10944136
推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有