所以,根据我的理解,你想更新
df1
从
df2
只为
Non-Null
价值观。
以下面的数据帧为例:
In [1761]: df1
Out[1761]:
val1 val2 val3
0 NaN NaN 0.20
1 NaN 0.2 NaN
2 NaN NaN 0.13
3 NaN 50.0 0.40
In [1762]: df2
Out[1762]:
val1 val2 val3
0 99 0.10 NaN
1 99 NaN 0.10
2 99 NaN 0.13
3 99 50.00 0.40
因此,在上述情况下,将发生以下更新:
1.)列的所有行
val1
属于
DF1
将由更新
Val1
属于
小精灵
作为
小精灵
具有此列的所有非空值。
2.)仅第一行用于列
val2
属于
DF1
将由更新
Val2
属于
小精灵
作为
小精灵
此列的第一行具有非空值。
3.)第二行仅用于列
val3
属于
DF1
将由更新
Val3
属于
小精灵
作为
小精灵
此列的第二行具有非空值。
注:第3行为col
Val2
属于
DF1
不会更新,因为即使在
DF2
.
下面是执行上述操作的代码:
df1[~df1.notnull()] = df2[df2.notnull()]
现在,
DF1
更新后如下所示:
In [1766]: df1
Out[1766]:
val1 val2 val3
0 99.0 0.1 0.20
1 99.0 0.2 0.10
2 99.0 NaN 0.13
3 99.0 50.0 0.40
我认为这解决了你的问题。