连接一个索引上的2个dataframe,而不对缺少的索引引入nan



我有2个dataframe:

df1 = pandas.DataFrame([[1,2,3],[4,5,6],[7,8,9]], columns=['a','b','c'])
df2 = df1*2
df2.index = [1,2,3]
>>> df1
   a  b  c
0  1  2  3
1  4  5  6
2  7  8  9
>>> df2
    a   b   c
1   2   4   6
2   8  10  12
3  14  16  18

假设我想根据索引将df2中的a列添加到df1中:

df1['a'] += df2['a']
>>> df1
    a  b  c
0 NaN  2  3
1   6  5  6
2  15  8  9

当索引在两个帧中都存在时,这很好地工作,但我只想在索引缺失的情况下添加零,而不是引入nan s。有办法做到这一点吗?

您可以使用Series.add与参数fill_value=0:

>>> df1['a'] = df1['a'].add(df2['a'], fill_value=0)
>>> df1
    a  b  c
0   1  2  3
1   6  5  6
2  15  8  9

最新更新