我有一个单行数据帧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
答案 0 :(得分:1)
pandas
是index
敏感的,这意味着当您进行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