问题:给定 DataFrame b,如何通过布尔掩码列标识将多列的值替换为一个值?什么有效,但我不想要:b.iloc[:, 2:6] = "someConstantValue"什么不起作用,但我想要:b.iloc[:, 2:6][b["columnA"] == "someCondition"]] = "someConstantValue"谢谢你的时间!
2 回答
繁星淼淼
TA贡献1775条经验 获得超11个赞
您必须使用DataFrame.loc,对于按位置使用的列名称,请使用indexing by b.columns[2:6]。
b = pd.DataFrame({'A':list('abaaef'),
'B':[4,5,4,5,5,4],
'C':[7,8,9,4,2,3],
'D':[1,3,5,7,1,0],
'E':[5,3,6,9,2,4]})
print (b)
A B C D E
0 a 4 7 1 5
1 b 5 8 3 3
2 a 4 9 5 6
3 a 5 4 7 9
4 e 5 2 1 2
5 f 4 3 0 4
b.loc[b["A"] == "a", b.columns[2:6]] = 100
print (b)
A B C D E
0 a 4 100 100 100
1 b 5 8 3 3
2 a 4 100 100 100
3 a 5 100 100 100
4 e 5 2 1 2
5 f 4 3 0 4
添加回答
举报
0/150
提交
取消