我有一个有两列的df;女人和男人,我想得到最大值,然后标记各自的值。
df=pd.DataFrame({'WOMEN':[0,1,3,1,2,0,0],
'MEN':[2,3,1,2,0,0,1]})
目标是创建一个名为‘性’的新栏目,在‘女性’和‘男性’之间具有最大值;例如,在第一种情况下,结果值应该是2,从'MEN'的相应值,接下来的步骤我需要,我会标记数据源,我的意思是,在最后,我不需要值,我需要从源值标记为1到MEN和0到WOMEN。
对于下面的情况,第二个,来自MEN的最大原始值是3,该值应该转到新列'sex',但我想将其标记为'1',最后,如果值相等,我希望标记的值是随机的0或1。
我留下一张表来说明最后的结果
| 身份证|女性|男士|性别|
| --------------|--------------|--------------|--------------|
| 1|0|二|1|
| 二|1|三|1|
| 三|三|1|0|
| 四|1|二|1|
| 五|二|0|0|
| 六|0|0|0|
| 六|0|1|1|
男人:1,女人:0
谢谢你的支持
2条答案
按热度按时间3df52oht1#
只需比较列的值并将结果的布尔值转换为整数:
输出:
anauzrmj2#
结果:
使用apply with axis = 1来对df的每一行应用lambda函数。这里的lambda只是使用x[0](第0列- woman)和x[1](第1列- men)的条件表达式。