У меня есть DataFrame, на котором я бегу:Как создать новые столбцы с помощью pandas groupby & aggregate?
df.groupby(by="mycol").agg({"colA": "sum", "colB": "count"})
Однако colA
и colB
должны существовать. Каков самый «пандайский» подход к созданию новых столбцов из агрегации?
Edit:
В принципе, у меня есть набор колонок, и мои агрегирование не являются 1: отображение 1. Таким образом, рассмотрим пример, в котором я хотел бы агрегировать отношение значений двух столбцов в качестве нового столбца. Теперь подумайте о словаре таких отображений.
Я знаю, что в этом примере я мог бы просто фильтровать для play
, а затем вычислить среднее значение для сгруппированных данных. Но это не вопрос, поэтому, пожалуйста, проигнорируйте это простое решение, которое является просто побочным эффектом простого примера.
>> df
outlook play temperature
0 sunny True 25
1 sunny True 25
2 overcast True 19
3 rain False 21
4 overcast False 33
5 rain False 27
6 rain False 22
7 overcast True 26
8 sunny True 13
9 sunny True 16
# should become:
>> df.groupby(by="outlook").agg(?)
play_mean_temp
sunny 19.75
overcast 22.50
rain NaN
ли вам нужен 'df.groupby (по =" Mycol ") .agg (['sum', 'count'])'? – jezrael
Можете ли вы добавить образец данных и желаемый результат? – jezrael
@jezrael добавлен по вашему желанию. Спасибо за помощь! – Xiphias