#python #pandas
#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 выглядит следующим образом,
Но теперь, если я сохраню данные df.to_csv('res.csv', index=None, header=True)
, я потеряю все groupby()
столбцы. Как я могу это сделать, чтобы получить файл csv в виде изображения (или аналогичный)? Можно объединить эти два «шага» в заголовке только с одним?
Большое вам спасибо!
Ответ №1:
Вам либо нужно установить index=True
:
df.to_csv('res.csv', index=True, header=True)
или вы можете сбросить индекс перед сохранением, используя:
df.reset_index().to_csv('res.csv', index=None, header=True)
Ответ №2:
Я думаю, вам нужно удалить 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)