Добавить несколько кадров вместе (более двух) - PullRequest
0 голосов
/ 10 июля 2019

Как бы я добавил несколько кадров данных вместе. Я хочу подвести итоги как 10 кадров. Я пытался использовать

df_add = df1.add(df2, df3 fill_value=0)

И это не работает.

Это код для создания DFS

df1 = pd.DataFrame([(1,2),(3,4),(5,6)], columns=['a','b'])


   a  b
0  1  2
1  3  4
2  5  6

df2 = pd.DataFrame([(100,200),(300,400),(500,600)], columns= 
['a','b'])

df3 = pd.DataFrame([(100,200),(300,400),(500,600)], columns= 
['a','b'])

Теперь, как бы я мог добавить их так, чтобы

     a      b
0   201    402
1   603     804
2   1005    1206

Ответы [ 2 ]

1 голос
/ 10 июля 2019

Как дополнение,

df1 + df2 + df3

работает просто отлично.Если производительность важна, а сопоставление индексов не важно, тогда рассмотрите векторизацию np.sum и избегайте накладных расходов панд

%timeit np.sum([df1.values,df2.values,df3.values],axis=0)
27.2 µs ± 3.06 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)

%timeit df1+df2+df3
1.21 ms ± 23.9 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

%timeit sum((df1,df2,df3))
2.04 ms ± 208 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
1 голос
/ 10 июля 2019

Похоже, что простой

sum((df1,df2,df3))

работает и дает:

      a     b
0   201   402
1   603   804
2  1005  1206
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...