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

如何在pandas中将ctype列值转为列名后缀,实现长表转宽表操作

你可以直接使用pandas的pivot方法实现长表转宽表,操作代码如下:

# 先确认你的df中cdate、ctype组合是唯一的,直接调用pivot
result = df.pivot(
    index="cdate",
    columns="ctype",
    values=["cval1", "cval2"]
)
# 合并多层列名,生成 原列名_ctype 格式的新列名
result.columns = [f"{val_col}_{ctype}" for val_col, ctype in result.columns]
# 重置索引,将cdate从索引转为普通列
result = result.reset_index()

如果你的实际数据中存在同一个cdate+ctype组合对应多条记录的情况,可以改用pivot_table指定聚合规则,示例如下(示例中用first取第一条记录的值,你可以根据需求调整为sum、mean等聚合函数):

result = df.pivot_table(
    index="cdate",
    columns="ctype",
    values=["cval1", "cval2"],
    aggfunc="first"
)
# 后续合并列名、重置索引的操作和上面一致
result.columns = [f"{val_col}_{ctype}" for val_col, ctype in result.columns]
result = result.reset_index()

注:你给出的预期结果里的cval_3属于笔误,按上述代码输出的对应列名为cval1_3,和其他列命名规则统一。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:15:03