Получение суммы int-ячеек из нескольких фреймов данных - PullRequest
0 голосов
/ 02 декабря 2018

У меня есть четыре фрейма данных с одинаковыми столбцами и столбцом «Площадь», который согласуется с 4 dfs.

AREA     NUM1   NUM2
london   10     10

AREA     NUM1   NUM2
london   5      5

Вывод, который я хочу увидеть в моем новом фрейме данных,

Area     NUM1   NUM2
london   15     15

Я пытался сделать простое

dfTotal = df1 + df2

, но он дает мне Лондон Лондон для района

Ответы [ 2 ]

0 голосов
/ 02 декабря 2018

Один из вариантов - объединить 4 кадра данных, а затем запустить groupby / pivot_table, чтобы получить результат.Плюс в том, что если вы добавите больше фреймов данных (если вам потребуется), код не сильно изменится

0 голосов
/ 02 декабря 2018

Создание индекса по столбцу AREA для выравнивания до суммы с select_dtypes:

dfTotal = ((df1.set_index('AREA').select_dtypes(np.number) +
            df2.set_index('AREA').select_dtypes(np.number))
               .reset_index())

print (dfTotal)
     AREA  NUM1  NUM2
0  london    15    15

Общее решение:

dfs = [df1, df2]
L = [x.set_index('AREA').select_dtypes(np.number) for x in dfs]

dfTotal = pd.concat(L).sum(level=0).reset_index()
print (dfTotal)
     AREA  NUM1  NUM2
0  london    15    15
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...