我想用相应的Node
值替换Target
中的NaN
值。
我的数据是:
Node Target Color
node1 node7 Red
node1 node9 Red
node3 node5 Green
node1 node3 Red
node3 node1 Red
node5 NaN Yellow
我需要:
Node Target Color
node1 node7 Red
node1 node9 Red
node3 node5 Green
node1 node3 Red
node3 node1 Red
node5 node5 Yellow # here the replacement
我认为一个可能的解决方案是使用if语句检查节点的Target
是否等于NaN:如果是,则可以将自身指定为目标
是的,^{} 将允许
value
(替换)参数是一个系列(列),而不仅仅是一个常量:注意,这比if…else逻辑要好,因为它对整个数据帧执行一个矢量化赋值,如下面的测试用例所示
df.fillna()
不允许我们这样做:您还可以在感兴趣的列上使用^{} ,其中,
df.where(... other)
arg是您的替换列,df['Node']
:还要注意我们如何使用逻辑索引,使用
df['Target'].notna()
获得目标为/非NA的行的掩码/逻辑向量更好的测试用例:
相关问题 更多 >
编程相关推荐