为了账号安全,请及时绑定邮箱和手机立即绑定

根据其他列条件更改多列

根据其他列条件更改多列

长风秋雁 2021-07-29 21:58:27
A    B  C   D   E   F    G   H  I   J1   22  2   7   8   1   22  2   7   81   71  5   53  50  1   71  5   5   50   3   6   2   2   0   4   6   2   21   61  51  3   50  1   61  5   3   20   52  2   2   4   0   6   2   2   41   2   1   51  4   1   41  1   5   40   1   4   2   4   0   40  4   2   40   50  5   2   7   0   50  5   2   7假设我有上面的数据框,我想将列 F 的值更改为 I 到 55,如果列 B == 51 或 52, 50。我想对 C、E 等其他列重复此操作。这是我编写的代码跟随熊猫。df.loc[(df['B'] == 50) | (df['B'] == 51) | df['B'] == 50) | (df['C'] == 51), ['F', 'G', 'H', 'I' ]] = 55它不工作。
查看完整描述

1 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

iiuc 你的意思是这样的:


df.loc[df['B'].isin([50, 51, 52]) | df['C'].isin([50, 51, 52]), ['F', 'G', 'H', 'I']] = 55

编辑:


对于更长的查找列列表,您可以使用


luc = ['B', 'C', 'E', 'F']

df.loc[df[luc].isin([50, 51, 52]).any(axis=1), ['F', 'G', 'H', 'I']] = 55

(感谢@jezrael 指出可直接访问的方法any)


要么


df.loc[np.any(df[luc].isin([50, 51, 52]), axis=1), ['F', 'G', 'H', 'I']] = 55


查看完整回答
反对 回复 2021-08-03
  • 1 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号