尽管使用了fill_value,`DataFrame.add`仍会创建缺失值

时间:2017-12-03 20:03:06

标签: python pandas

我添加了两个不匹配的列/索引的DataFrame。但是,尽管使用fill_values参数我在结果中获得了一些意外的缺失值。我是Python的新手,所以如果有任何机构可以指导我了解这里发生的事情,那将非常有帮助。这是我的代码(我使用Anaconda3):

df1 = pd.DataFrame(np.arange(4).reshape((2,2)),
        index=list('ab'), columns=list('xy'))
df2 = pd.DataFrame(np.arange(3).reshape((3,1)),
        index=list('abc'), columns=list('y'))
print(df1.add(df2, fill_value=0))
     x    y
a  0.0  1.0
b  2.0  4.0
c  NaN  2.0
print(df2.add(df1, fill_value=0))
     x    y
a  0.0  1.0
b  2.0  4.0
c  NaN  2.0

1 个答案:

答案 0 :(得分:0)

docs注意事项,

  

相当于dataframe + other,但支持替换a   fill_value表示 输入中的缺失数据。

你得到NaN,因为(c,X)并不存在于任何一个DataFrame中,并且此操作采用(行,列)对的并集。

解决方法就是

df2.add(df1, fill_value=0.).fillna(value=0.)