我有一个像这样的 pandas 数据框,其中的列是用户的年龄组,数字 1 表示用户是否属于该用户组。
21_30 31_40 40_49 50_59
0 0 0 0 1
1 0 1 0 0
2 0 1 0 0
3 1 0 0 0
4 0 0 1 0
我想做的是将所有信息收集到一列中,并将数字 1 转换为指示年龄组的字符串。
age_group
0 50_59
1 31_40
2 31_40
3 21_30
4 40_49
我怎样才能最好地解决这个问题?任何意见将是有益的。提前致谢!
最佳答案
您可以检查行中的列值是否等于 1,并通过 .idxmax()
获取与 True
对应的列索引(对于 1
的条目)。 (使用axis=1
获取列索引),如下:
df['age_group'] = df.eq(1).idxmax(axis=1)
结果:
print(df)
21_30 31_40 40_49 50_59 age_group
0 0 0 0 1 50_59
1 0 1 0 0 31_40
2 0 1 0 0 31_40
3 1 0 0 0 21_30
4 0 0 1 0 40_49
关于python - Pandas:从互斥选择的多列中获取一行中特定单个值的列索引/标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68291598/