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

Pandas数据透视如何条件选择Result_Str或Result_Num作为values列

可以实现,你只需要提前将Result_Str和Result_Num合并为一个动态取值的列,再执行透视操作即可,具体操作如下:

步骤1:合并结果列

你提供的样例中两个结果列是互补为空的,优先取Result_Str的值,为空时取Result_Num转字符串后的值,保证结果类型统一:

import numpy as np
import pandas as pd

# 动态合并两列有效值
df['Result'] = np.where(df['Result_Str'].notna(), df['Result_Str'], df['Result_Num'].astype(str))

如果Result_Num的空值本身为pd.NA/NaN,也可以用更简洁的写法:

df['Result'] = df['Result_Str'].fillna(df['Result_Num'].astype(str))

步骤2:执行透视

直接使用合并后的Result列作为透视的值来源:

pivot_result = df.pivot(
    index="ClassID", 
    columns="Name",
    values="Result"
).reset_index()\
 .rename_axis(columns=None)\
 .fillna('') # 可选:将空值填充为空字符串,匹配你需要的输出格式

执行后得到的pivot_result就是你要求的透视结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:39:03