Pandas:保存groupby结果至CSV时列索引与日期时间格式丢失问题
解决Pandas Groupby重采样后保存CSV丢失列索引日期格式的问题
看起来你碰到了Pandas的一个常见小坑:to_csv()里的date_format参数只对行索引中的日期生效,而你通过unstack()得到的列是DatetimeIndex,这个参数不会处理列索引的日期格式。直接保存的话,DatetimeIndex会被转换成默认的字符串格式,导致你想要的自定义日期时间格式丢失。
解决方案
最简单的处理方式是先把列的DatetimeIndex转换成你需要的字符串格式,再执行保存操作:
# 先将列索引(Datetime类型)转换为指定格式的字符串 tdGroupedWeek.columns = tdGroupedWeek.columns.strftime('%Y-%m-%d %H:%M:%S') # 再保存到CSV文件 tdGroupedWeek.to_csv('week.csv', sep='\t')
额外说明
- 如果你希望保留行索引(也就是
Taxi ID列),这是to_csv()的默认行为,不需要额外设置;如果不需要行索引,可以加上index=False参数。 - 这个方法的前提是你的
Trip End Timestamp已经是datetime类型(从你使用pd.Grouper(freq='W')来看应该是满足的),如果还不是,需要先将该列转换为datetime:taxiData['Trip End Timestamp'] = pd.to_datetime(taxiData['Trip End Timestamp'])。
这样处理后,CSV文件里的列名就会严格按照你指定的%Y-%m-%d %H:%M:%S格式显示,不会丢失日期时间的格式信息啦。
内容的提问来源于stack exchange,提问作者HighVoltage
相关产品推荐
相关产品推荐

