我需要从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中的外观是这样的,
但是现在,如果我保存数据df.to_csv('res.csv', index=None, header=True)
,则会丢失所有groupby()
列。如何获取图片的csv文件(或类似图片)?是否可以将标头上的这两个“步骤”加入一个?
非常感谢您!
答案 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)