Как добавить несколько столбцов из нескольких фреймов данных, сохраняя константу идентифицирующего столбца в Python? - PullRequest
0 голосов
/ 12 марта 2020

У меня есть несколько фреймов данных a, b, c, d, e с одинаковыми именами столбцов person_id, place_x, place_y, place_z

Как можно суммировать все значения разных фреймов данных только для столбцов place_x place_y place_z?

Окончательный вариант кадр данных, что-то вроде этого:

person_id     place_x       

001           a[place_x] +... e[place_x] 

Я пробовал

a=a.set_index('person_id')
b=b.set_index('person_id')
df_sum = a.add(b, fill_value=0)
c=set_index('person_id') 
df_sum = df_sum.add(c,fill_value=0)
// and so on until e

Значения в каждом столбце добавляются правильно. Но с другой стороны, это делает person_id, который, например, становится 001001 вместо просто 001 Как я могу предотвратить это?

Кроме того, есть ли способ упростить это, чтобы я мог добавить все, что требуется в одном предложении в целом? Вместо нескольких дополнений?

1 Ответ

1 голос
/ 12 марта 2020

Использование concat с заполнителем sum:

dfs = [a,b,c,d,e]
df = pd.concat(dfs).groupby('person_id', as_index=False).sum()
...