如何在Pandas中实现每行最大值替换为1、其余值替换为0?
处理Pandas数据行:将每行最大值替换为1,其余替换为0
原始数据集
import pandas as pd dts1 = pd.DataFrame([[0.5,0.7,0.1,0.9,0.1], [0.7,0.9,0.11,0.02,0.1]])
解决方案代码
直接利用Pandas的行最大值比较功能,一步完成转换:
# 按行匹配最大值,转换为0/1格式 result = dts1.eq(dts1.max(axis=1), axis=0).astype(int) print(result)
输出结果
0 1 2 3 4 0 0 0 0 1 0 1 0 1 0 0 0
转换为逗号分隔字符串格式
如果需要输出成类似0,1,0,0,0的单行字符串形式,可添加以下代码:
# 每行转为逗号分隔的字符串 str_output = result.apply(lambda row: ','.join(map(str, row)), axis=1) for line in str_output: print(line)
对应的输出:
0,0,0,1,0 0,1,0,0,0
内容的提问来源于stack exchange,提问作者Medina Campero
相关产品推荐
相关产品推荐

