如何从pandas pivot_table透视表中提取纯数值列
提取pandas透视表数值列的简便方法
你生成的total_chart是标准pandas DataFrame结构,打印时看到的第一列是Name行索引,第二列就是聚合得到的计数值,有两种非常简便的提取方式:
按列名提取(最直观,推荐日常使用)
你创建透视表时指定了values="Items",所以数值列的列名就是Items,直接用列名索引即可:# 提取得到带Name索引的pandas Series,可直接用于后续pandas运算、绘图 count_series = total_chart['Items'] # 如果需要纯Python格式的数值列表,追加.tolist()即可 count_list = total_chart['Items'].tolist() # 运行后count_list输出为 [8, 52, 24, 6, 43, 5, 13, 1]按位置提取(通用写法,不需要记列名)
你的透视表除了行索引之外只有1个数值列,对应DataFrame普通列的第0位,用iloc按位置切片即可,不管列名是什么都能生效:# 提取所有行、第1个数值列(对应打印输出里的第二列) count_series = total_chart.iloc[:, 0] # 同样可以转纯数值列表 count_list = total_chart.iloc[:, 0].tolist()
补充说明:如果后续要传入不支持pandas类型的工具做计算,除了转原生列表,也可以追加
.values得到numpy数组格式的纯数值。
内容的提问来源于stack exchange,提问作者Ashat Usbekof
相关产品推荐
相关产品推荐

