Группа данных Pandas по столбцу получает количество двух столбцов

Я извлекаю данные из электронной таблицы 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%

укажите точный желаемый результат в виде текстовой таблицы

Panda Kim 21.07.2024 17:16
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
58
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Код

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%

это отлично работает, спасибо. Кажется, с этим модулем можно многое сделать, думаю, мне еще многому о нем нужно научиться.

KeetsScrimalittle 21.07.2024 17:33

Не уверен, что я полностью понял ваш вопрос и вывод. Было бы лучше, если бы вы предоставили ожидаемый результат для лучшего понимания. Но вот кое-что вы можете сделать. Я предполагаю, что вы уже посчитали % успеха. Вы можете просто сделать:

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

Другие вопросы по теме