2 回答

TA贡献1806条经验 获得超8个赞
首先,我建议您阅读有关索引和在熊猫中选择数据的内容。Regaring可以使用的第一个问题.loc()与isnull()对列vaulues执行布尔索引:
mask_nans = test.loc[3,:].isnull()
test.loc[3, mask_nans] = test.loc[0, mask_nans]
并且要将值加倍,您还可以使用以下方法直接乘以2切片数据帧.loc():
test.loc[1,'b':] *= 2
a b c d
0 1 4.0 7.0 7.0
1 2 10.0 16.0 16.0
2 3 6.0 9.0 9.0
3 4 4.0 7.0 7.0
4 5 NaN NaN NaN

TA贡献1884条经验 获得超4个赞
用标签索引
如果您希望按 过滤a,并且a值是唯一的,请考虑将其设为索引以简化您的逻辑并使其更高效:
test = test.set_index('a')
test.loc[4] = test.loc[4].fillna(test.loc[1])
test.loc[2] *= 2
布尔掩码
如果a不是唯一的并且需要布尔掩码,您仍然可以使用fillna附加步骤:
mask = test['a'].eq(4)
test.loc[mask] = test.loc[mask].fillna(test.loc[test['a'].eq(1).idxmax()])
test.loc[test['a'].eq(2)] *= 2
添加回答
举报