You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 15:10:39