Pandas导出CSV时将首行设为表头的问题及无效尝试
解决方案
问题根源
你之前的代码犯了一个关键错误:把to_csv()的返回值(None)重新赋值给了df,导致后续修改表头的代码全是对None对象操作,完全无效。而且正确的流程应该是先调整DataFrame的表头,再导出CSV,而非导出后再处理。
修正后的完整代码
# 原数据处理流程 df['time'] = df['time'].astype("datetime64").dt.date df = df.set_index("time") df = df.groupby(df.index).agg(['min', 'max', 'mean']) df = df.reset_index() # 调整表头:将第一行数据设为列名,同时删除该行 new_header = df.iloc[0] df = df[1:] df.columns = new_header # 导出CSV,注意不要将返回值赋值给df(to_csv()返回None) df.to_csv(r'C:\****\Exports\exportMMA.csv', index=False)
额外优化(针对多级索引场景)
如果groupby.agg()生成了多级列名(比如(BufTF2, min)这种格式),可以先扁平化列名再导出,避免表头混乱:
# 将多级列名转为类似 BufTF2_min 的格式 df.columns = ['_'.join(col) for col in df.columns.values] # 再执行表头调整和导出操作 new_header = df.iloc[0] df = df[1:] df.columns = new_header df.to_csv(r'C:\****\Exports\exportMMA.csv', index=False)
内容的提问来源于stack exchange,提问作者UwUs
相关产品推荐
相关产品推荐

