如何在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
相关产品推荐
相关产品推荐

