У меня есть пандас с несколькими столбцамиЯ хотел бы вычислить сумму различных подмножеств этих столбцов и назначить имя каждой группе столбцов.
Возможно ли достичь этого с помощью групповых или других методов панд?
Настройка:
import numpy as np; np.random.seed(1)
import pandas as pd
df = pd.DataFrame(np.random.randint(0, 10, (3, 5)), columns=['A', 'B', 'C', 'D', 'E'])
columns_groups = {'First': ['A', 'B', 'C'],
'Second': ['D', 'E'],
'Some': ['A', 'C', 'D'],
'All': ['A', 'B', 'C', 'D', 'E']}
Желаемый вывод: (есть ли более элегантное решение?)
out = {}
for name, group in columns_groups.items():
out[name] = df[group].sum(axis=1)
out = pd.DataFrame(out)
out
Out[22]:
All First Second Some
0 27 22 5 19
1 23 8 15 13
2 17 11 6 9
Моя попытка:
df.groupby(columns_groups, axis=1).sum(axis=1)
Out[21]:
Empty DataFrame
Columns: []
Index: [0, 1, 2]