我一直在努力从pandas数据框中的列中删除时区信息.我检查了以下问题,但它对我不起作用:
我可以将pandas DataFrame导出到Excel剥离tzinfo吗?
我使用tz_localize为datetime对象分配时区,因为我需要使用tz_convert转换为另一个时区.这会以"-06:00"的方式添加UTC偏移量.我需要摆脱这种偏移,因为当我尝试将数据框导出到Excel时会导致错误.
实际输出
2015-12-01 00:00:00-06:00
Run Code Online (Sandbox Code Playgroud)
期望的输出
2015-12-01 00:00:00
Run Code Online (Sandbox Code Playgroud)
我试图使用str()方法获取我想要的字符,但似乎tz_localize的结果不是字符串.到目前为止,我的解决方案是将数据帧导出到csv,读取文件,并使用str()方法获取我想要的字符.
有更简单的解决方案吗?
Die*_*des 23
如果你的系列只包含日期时间,那么你可以这样做:
my_series.dt.tz_localize(None)
这将删除时区信息(它不会改变时间)并返回一系列天真的本地时间,例如可以使用to_excel()导出到excel.
jez*_*ael 11
也许帮助剥离最后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
Run Code Online (Sandbox Code Playgroud)
要从所有列中删除时区,只需使用:
for col in df.select_dtypes(['datetimetz']).columns:
df[col] = df[col].dt.tz_convert(None)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11978 次 |
最近记录: |