У меня есть датафрейм с повторяющимся именем столбца, и я хотел бы суммировать эти столбцы.

>df

      A  B  A  B
1    12  2  4  1
2    10  5  4  9
3     2  1  4  8
4     2  4  3  8

То, что я хотел бы, это что-то вроде этого:

      A   B  
1    16   3  
2    14  14  
3     6   9  
4     5  12 

Я могу выбрать повторяющиеся столбцы в цикле, но я не знаю, как удалить столбцы и воссоздать новый столбец с суммированными значениями. Я хотел бы знать, есть ли более элегантный способ?

col = list(df.columns)
dup = list(set([x for x in col if col.count(x) > 1]))
for d in dup:
    sum = df[d].sum(axis=1)
0
Florent 11 Апр 2020 в 20:50

2 ответа

Лучший ответ

Давайте попробуем

sum_df=df.sum(level=0,axis=1)
2
YOBEN_S 11 Апр 2020 в 17:59

Попробуй это

df.groupby(lambda x:x, axis=1).sum()
1
FAHAD SIDDIQUI 11 Апр 2020 в 18:05