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

如何在Pandas中基于参数值出现情况创建指定结构透视表?

如何用Pandas实现指定格式的透视表?

需求说明

  • 数据集包含字段:邮箱地址、邮件编号(1-4)、邮件阅读状态(已读/未读)
  • 目标:生成透视表,以邮箱地址为索引,邮件编号为列,单元格值对应该邮箱对应邮件的阅读状态

问题分析

你之前的代码未指定正确的索引字段,且将values设为邮箱地址,这不符合需求——我们需要把阅读状态作为填充值。

解决方案

方法1:使用pivot_table(适合存在重复索引+列组合的场景)

假设你的阅读状态列名为read_status,替换成你实际的列名即可:

import pandas as pd

table = pd.pivot_table(
    opens_with_names,
    index='Email Address',  # 设置邮箱为行索引
    columns='email_no',     # 邮件编号作为列
    values='read_status',   # 用阅读状态填充单元格
    aggfunc='first'         # 每个邮箱+邮件编号对应唯一状态,取第一个值即可
)

方法2:使用pivot(适合无重复索引+列组合的场景)

如果你的数据中每个邮箱对应同一邮件编号只有一条记录,用pivot更简洁:

table = opens_with_names.pivot(
    index='Email Address',
    columns='email_no',
    values='read_status'
)

补充:处理缺失值

若存在邮箱未收到某编号邮件的情况,可填充默认状态(比如“未读”):

table = table.fillna('未读')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 15:05:33