将groupby()数据保存到csv文件中-熊猫

时间:2020-10-29 13:05:24

标签: python pandas

我需要从csv文件中过滤一些数据并保存结果。

我正在这样做

from pandas import read_csv, DataFrame

df = read_csv('results.csv')

df = df.groupby(['LR', 'Optimizer', 'Activation', 'Drop rate', 'Epochs','Batch size']).mean()
df = df.drop(['kFold'],1)
df = df.drop(['Train time (segs)'],1)
df = df.drop(['T Loss','T Acc (%)', 'T Prec (%)', 'T Recall (%)', 'VN', 'FN', 'FP', 'VP'],1)
df = df.sort_values(by=['VP (%)'], ascending=False)

df.head(50)

它在Google colaboratory中的外观是这样的,

enter image description here

但是现在,如果我保存数据df.to_csv('res.csv', index=None, header=True),则会丢失所有groupby()列。如何获取图片的csv文件(或类似图片)?是否可以将标头上的这两个“步骤”加入一个?

非常感谢您!

2 个答案:

答案 0 :(得分:1)

您要么需要设置index=True

df.to_csv('res.csv', index=True, header=True)

或者您可以在保存之前使用以下方法重置索引:

df.reset_index().to_csv('res.csv', index=None, header=True)

答案 1 :(得分:1)

我认为如果文件中需要index=False,则需要删除MultiIndex

df = df.groupby(['LR', 'Optimizer', 'Activation','Drop rate', 'Epochs','Batch size']).mean()

df.to_csv('res.csv', header=True)

或将MultiIndex转换为列,并使用index=None参数忽略默认值RangeIndex

df = df.groupby(['LR', 'Optimizer', 'Activation','Drop rate', 'Epochs','Batch size'], as_index=False).mean()
#alternative
#df = df.groupby(['LR', 'Optimizer', 'Activation', 'Drop rate', 'Epochs','Batch size'].mean().reset_index()

df.to_csv('res.csv', index=None, header=True)