我添加了两个不匹配的列/索引的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
答案 0 :(得分:0)
docs注意事项,
相当于dataframe + other,但支持替换a fill_value表示 输入中的缺失数据。
你得到NaN,因为(c,X)并不存在于任何一个DataFrame中,并且此操作采用(行,列)对的并集。
解决方法就是
df2.add(df1, fill_value=0.).fillna(value=0.)