我想替换特定列的值。我可以一个一个地更改值,但是,我有数百个列,并且需要从特定字符串开始更改列。这是一个示例,我想在列名以开头时替换字符串"Q14"
df.filter(regex = 'Q14').replace(1, 'Selected').replace(0, 'Not selected')
上面的代码正在工作。但是,如何在我的系统中实现它dataframe
?因为这是函数,所以我不能就地使用。
考虑以下df
:
In [439]: df = pd.DataFrame({'Q14_A':[ 1,0,0,2], 'Q14_B':[0,1,1,2], 'Q12_A':[1,0,0,0]})
In [440]: df
Out[440]:
Q14_A Q14_B Q12_A
0 1 0 1
1 0 1 0
2 0 1 0
3 2 2 0
过滤以开头的列Q14
,将其保存在变量中:
In [443]: cols = df.filter(regex='^Q14').columns
现在,使用replace
命令更改上面选择的列:
In [446]: df[cols] = df[cols].replace(1, 'Selected').replace(0, 'Not selected')
输出:
In [447]: df
Out[447]:
Q14_A Q14_B Q12_A
0 Selected Not selected 1
1 Not selected Selected 0
2 Not selected Selected 0
3 2 2 0
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句