Sotnikov Asked:2020-08-16 06:35:22 +0000 UTC2020-08-16 06:35:22 +0000 UTC 2020-08-16 06:35:22 +0000 UTC 两个 DataFrame 的总和 772 假设我们有两个数据框: test =pd.DataFrame(columns=['a','b'], data=[[1,2],[3,5],[5,7]]) test2 =pd.DataFrame(columns=['a','b'], data=[[1,2],[3,5]]) 因此,事实证明,一个具有另一个没有的索引。 现在,如果我们进行加法test+test2,我们会得到: 是否可以将索引不在一个数据帧中的数据帧的总和设置为具有该索引的数据帧的值,而不是我们现在拥有的 NaN? python 2 个回答 Voted Best Answer MaxU - stop genocide of UA 2020-08-16T15:31:35Z2020-08-16T15:31:35Z 求和后使用DataFrame.combine_first(other)方法。 例子: 源数据帧: In [18]: d1 = pd.DataFrame(columns=['a','b'], data=[[1,2],[3,5],[5,7]]) In [19]: d2 = pd.DataFrame(columns=['a','b'], data=[[1,2],[3,5],[8,9]], index=[0,1,4]) In [20]: d1 Out[20]: a b 0 1 2 1 3 5 2 5 7 In [21]: d2 Out[21]: a b 0 1 2 1 3 5 4 8 9 解决方案: In [22]: res = d1.add(d2).combine_first(d1).combine_first(d2) 结果: In [23]: res Out[23]: a b 0 2.0 4.0 1 6.0 10.0 2 5.0 7.0 4 8.0 9.0 Aibek Seitov 2020-08-16T10:13:19Z2020-08-16T10:13:19Z 通过add()方法尝试: sum = test.add(test2, fill_value=0) 另一个dataframe中的缺失值会用fill_value填充
求和后使用DataFrame.combine_first(other)方法。
例子:
源数据帧:
解决方案:
结果:
通过add()方法尝试: