Это вопрос Панды - мой мозг слишком устал, чтобы понять это сегодня.Может ли кто-нибудь помочь мне?У меня есть датафрейм с множеством столбцов с одним столбцом в качестве категории:
Category B C D .... Z
1 2 11 1.0 'HOME' ....
1 3 21 1.0 'HOME' ....
1 1 33 .9 'GOPHER' ....
2 4 34 0.6 'HUMM' ...
2 1 72 1.4 'VEEE' ...
3 5 23 2.3 'ETC ' ....
4 3 99 3.141 'PI' ...
4 4 1 2.634 'PI' ...
И я хочу получить это (текстовые столбцы действительно не имеют значения)
Category B C D .... Z
1 6 11 2.9 'HOME' ....
2 5 34 2.6 'HUMM' ...
3 5 23 2.3 'ETC ' ....
4 7 100 5.775 'PI' ...
Как мне поступитьделать это в Python Pandas?Использую ли я group ()?
Если df - это мой DataFrame, а результат в newdf будет результирующим фреймом данных, тогда в ndf ['B'] будет одна строка с newdf ['A'] = 1 и newdf [' B '] будет суммой значений в df [' B '] для всех строк, где df [' A '] было равно 1.
Для следующей категории будет одна строка вndf ['B'] с newdf ['A'] = 2 и newdf ['B'] будет суммой значений в df ['B'] для всех строк, где df ['A'] было 2
и так далее.
Я пытаюсь агрегировать сумму столбцов на основе категории в столбце A. Для каждой категории в A я хочу суммировать остальные столбцы с той же категорией.
Надеюсь, я все правильно объяснил.Вручную это будет похоже на
ndf['B'] = df[ df['A'] == 1 ].sum()
ndf['C'] = df[ df['A'] == 1 ].sum()
В принципе, можно ли использовать что-то вроде этого:
for col in df.columns:
if col.type(??) is number:
ndf[col] = df[ df[col] == 1 ].sum()
и для каждой категории в A;повторить
ndf['B'] = df[ df['A'] == 2 ].sum()
ndf['C'] = df[ df['A'] == 3 ].sum()
Затем мне пришлось бы выполнить цикл для каждого значения в категории для A.
Это правильный способ решения проблемы?