Digamos que eu tenha abaixo de 2pandas dataframes
import pandas as pd
dat1 = pd.DataFrame({'A' : [1999, -11234], 'B' : [88888, -345], 'C' : [-7777, -8978], 'D' : [7777, -8978]})
dat2 = pd.DataFrame({'A' : [999, 1234], 'B' : [8888, -345], 'C' : [-7777, -8978]})
Collection = [dat1, dat2]
No meu caso original, na verdade, tenho um número arbitrário de quadros de dados na lista Collection
. Agora eu quero adicionar todos esses quadros de dados com adição de elemento por elemento, com base em correspondências de linha e coluna (se em um quadro de dados, se uma coluna e/ou linha estiver faltando, o valor correspondente será assumido como 0 em tal adição).
Existe algum método/função direto disponível para conseguir isso?
Você pode usar junto com para adicionar um número arbitrário de quadros de dados juntos:
functools.reduce
pd.DataFrame.add
Isso somará os DataFrames na
collection
lista, preenchendo todos os valores ausentes com 0.Saída
result
:Você pode
concat
todos os quadros de dados juntos e, em seguida, usargroupby
esum
para obter o resultado desejado:Saída:
Obrigado a @SashSinha pelos dados