Python处理CSV:计算月均值后如何导出标准CSV格式
如何将Pandas计算的月度均值导出为标准CSV格式?
问题场景
你手头的原始CSV文件内容(推测是排版失误,实际应为每行一条数据):
Date,Data 01-01-01,111 02-02-02,222 03-03-03,333
你已经写出了计算月度均值的代码:
import pandas as pd data = pd.read_csv("input.csv") # 修正了你原代码里多余的reset_index(),直接读取Date列即可提取月份 data['Month'] = pd.DatetimeIndex(data['Date']).month mean_data = data.groupby('Month').mean()
但用print导出时得到了混乱的格式:
Data Month 1 2 2 3 3 4 4 5
你期望的标准CSV格式是:
Month,Data 1,2 2,3 3,4 4,5
问题根源
你用print(mean_data, file=f)的方式,本质是把DataFrame在控制台的打印格式直接输出到文件——这根本不是专门的CSV导出逻辑,格式异常是必然的。
解决方案
Pandas自带了专门的to_csv()方法,完美解决这个问题,完全不需要手动处理文件写入!
替换你原来的导出代码,用下面的写法:
# 正确导出为标准CSV mean_data.reset_index().to_csv("test.csv", index=False)
代码解释
reset_index():把groupby后作为索引的Month转换成普通列,确保导出后第一列就是你需要的Monthto_csv("test.csv", index=False):- 第一个参数指定导出的文件名
index=False告诉Pandas不要把默认的行索引(0、1、2...)写入CSV,完全匹配你期望的格式
运行后生成的test.csv就是你想要的标准CSV格式啦!
内容的提问来源于stack exchange,提问作者steve
相关产品推荐
相关产品推荐

