如何从pandas透视表提取值?解决取值代码报错问题
Pandas透视表取值问题解决
问题描述
我是pandas新手,在尝试从透视表提取值时遇到问题。我的代码如下:
pivot = sp.pivot_table( index="story_points", values=["duration"], aggfunc={"min", "mean", "median", "max", "count"}, ) df = pivot.iloc[:, "duration"] zero = df.iloc[0, "median"] one = df.iloc[1.0, "median"] two = df.iloc[2.0, "median"] three = df.iloc[3.0, "median"]
生成的透视表输出为:
duration count max mean median min story_points_raw 1.0 227 185.125382 7.241453 2.190405 0.000139 2.0 144 68.849965 11.048451 6.106875 0.000058 3.0 45 126.131181 19.560792 13.558588 0.983241 4.0 16 49.043889 11.948981 6.932321 1.878125 5.0 5 128.653403 44.487847 15.489850 2.935891 8.0 8 79.792199 31.325800 17.299543 7.774792
在df = pivot.iloc[:, "duration"]这一行出现报错,请问是否有更合适的建表方式,方便直接访问所需值?
错误原因
iloc是基于整数位置的索引,不能用来访问列名(比如"duration"),你需要用loc或者直接通过多级列索引的方式取值。另外你的透视表输出索引是story_points_raw,但代码里设置的index参数是story_points,存在列名不匹配的问题。
解决方案
方案1:直接通过多级列索引提取数据
无需额外转换DataFrame,直接从透视表按索引和多级列名取值:
# 修正索引列名,和输出匹配 pivot = sp.pivot_table( index="story_points_raw", values=["duration"], aggfunc={"min", "mean", "median", "max", "count"}, ) # 用loc按索引值访问,列用多级索引元组指定 one = pivot.loc[1.0, ("duration", "median")] two = pivot.loc[2.0, ("duration", "median")] three = pivot.loc[3.0, ("duration", "median")] # 提取所有median值可直接取对应多级列 median_series = pivot[("duration", "median")]
方案2:扁平化多级列索引,简化访问
把多级列名合并为单层,后续访问更直观:
pivot = sp.pivot_table( index="story_points_raw", values=["duration"], aggfunc={"min", "mean", "median", "max", "count"}, ) # 扁平化列名,生成如"duration_count"、"duration_median"的单层列名 pivot.columns = ['_'.join(col) for col in pivot.columns] # 直接用单层列名访问 one = pivot.loc[1.0, "duration_median"] two = pivot.loc[2.0, "duration_median"] # 提取所有median值 median_series = pivot["duration_median"]
方案3:调整透视表参数,明确聚合规则
通过字典形式定义aggfunc,更清晰地指定列与聚合函数的对应关系:
pivot = sp.pivot_table( index="story_points_raw", values=["duration"], aggfunc={ "duration": ["min", "mean", "median", "max", "count"] } ) # 后续可选择扁平化列名,或直接用多级索引访问
注意点
- 确保
index参数对应的列名与实际数据一致,否则会导致索引不匹配。 iloc仅支持整数位置索引,按名称访问需用loc或直接列索引。
内容的提问来源于stack exchange,提问作者pcdr
相关产品推荐
相关产品推荐

