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

如何替换Pandas DataFrame列元素并合并得到指定单列结果

实现代码

场景1:元素为数值1/0,每行仅有1个1

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame([
     [0, 1, 0],
     [1, 0, 0],
     [0, 1, 0]],
     columns=['Mon','Tue','Wed'])

# 生成结果列,取每行最大值对应的列名
df['Day'] = df.idxmax(axis=1)
# 仅保留结果列可执行:result = df[['Day']]
print(df[['Day']])

运行输出即为你需要的结果:

Day
0  Tue
1  Mon
2  Tue

场景2:元素为字符X/-,每行仅有1个X

只需先匹配目标标记再取对应列名即可:

# 构造X/-格式的示例DataFrame
df = pd.DataFrame([
     ['-', 'X', '-'],
     ['X', '-', '-'],
     ['-', 'X', '-']],
     columns=['Mon','Tue','Wed'])

df['Day'] = df.eq('X').idxmax(axis=1)
print(df[['Day']])

特殊场景:存在无标记行(全0/全-)需要返回空字符串

加一步是否存在标记的判断即可:

# 以1/0场景为例,X/-场景把eq(1)改为eq('X')即可
df['Day'] = df.eq(1).any(axis=1).map({True: df.idxmax(axis=1), False: ''})

内容的提问来源于stack exchange,提问作者shweta_developer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:15:06