Я извлекаю данные из электронной таблицы Excel и создаю список объектов словаря из строк в этой таблице. Я преобразовал это в фрейм данных pandas. В этом фрейме данных у меня есть столбец с уникальными именами, а затем еще два столбца success
и failed
в этих столбцах, поэтому я веду счет либо 1 0.
Name success failed
Name1 1 0
Name1 0 1
Name1 1 0
Name1 0 1
Name1 1 0
Name2 1 0
Name2 1 0
Name2 0 1
Name3 1 0
Name3 0 1
Name3 0 1
Name3 1 0
Я обнаружил, что использование df.groupby("name").to_values()
отображает столбцы имени, успеха и неудачи, а столбцы сгруппированы с итоговыми суммами по имени успеха и неудачи, но я не знаю, как продолжить работу с этим как с новым объектом фрейма данных. Если я выведу это в Excel, у меня останется только одна строка с итоговыми значениями. Есть ли способ создать из этого новый объект со всеми моими столбцами? Мое намерение состояло в том, чтобы после этого показать процент от общего количества двух успехов и неудач по имени.
Name Success
Name1 90%
Name2 94%
Name3 89%
Код
out = df.groupby('Name')['success'].mean().map('{:.1%}'.format).reset_index()
вне:
Name success
0 Name1 60.0%
1 Name2 66.7%
2 Name3 50.0%
это отлично работает, спасибо. Кажется, с этим модулем можно многое сделать, думаю, мне еще многому о нем нужно научиться.
Не уверен, что я полностью понял ваш вопрос и вывод. Было бы лучше, если бы вы предоставили ожидаемый результат для лучшего понимания. Но вот кое-что вы можете сделать. Я предполагаю, что вы уже посчитали % успеха. Вы можете просто сделать:
group_df = df.groupby('Name').sum().reset_index()
group_df['total'] = group_df['success'] + group_df['failed]
Вывод приведенного выше кода будет примерно таким:
Name Success Failed Total
Name1 3 2 5
укажите точный желаемый результат в виде текстовой таблицы