为什么要用导致NaN的另一个数据帧分配整行?

时间:2019-04-22 17:05:00

标签: python pandas

我有一个单行数据帧d2和另一个数据帧d1。将d2分配给d1的行时,该行在d1中的值将变为NaN。代码:

d1=pd.DataFrame({'a':[1,2],'b':[3,4]})
print(d1)
d2=pd.DataFrame({'a':[5],'b':[9]})
d1.iloc[[1]]=d2
print(d1)

结果:

   a  b
0  1  3
1  2  4
     a    b
0  1.0  3.0
1  NaN  NaN

1 个答案:

答案 0 :(得分:1)

pandasindex敏感的,这意味着当您进行assign时,它也与index匹配,因为index中的d1是{ 1并且在d2中是0,这就是为什么它将返回NaN


快速修复,添加.value消除了索引的影响

d1.iloc[[1]]=d2.values
d1
Out[155]: 
   a  b
0  1  3
1  5  9

查看更多详细信息

d2.index=[1]
d1.iloc[[1]]=d2
d1
Out[162]: 
   a  b
0  1  3
1  5  9

或者您甚至可以update

d2.index=[1]
d1.update(d2)
d1
Out[167]: 
     a    b
0  1.0  3.0
1  5.0  9.0