如何使用tabulate打印pandas分组统计DataFrame且不显示索引
问题修复方案
错误原因
你原有代码存在两处核心问题,是导致输出列附带索引的根源:
- 第一行分组代码存在语法错误,
df.groupby('Country'['downloads'])漏掉了groupby方法的闭合括号,无法正常执行 - 无需拆分两次分组再手动拼接表格,你构造
total_per_country时给每个列值套了一层[],等于把整个Series序列塞到了单个单元格中,打印时会自带Series的索引信息
正确实现代码
单次分组即可同时对多列做聚合计算,无需额外拼接:
import pandas as pd from tabulate import tabulate # 读取原始xlsx数据 df = pd.read_excel(xls) # 按国家分组,直接对下载量、成本两列求和,as_index=False可以避免国家列变成索引 total_per_country = df.groupby('country', as_index=False)[['downloads', 'cost']].sum() # 打印格式化表格,headers='keys'直接复用DataFrame的列名,无需手动传入 print(tabulate(total_per_country, headers='keys', tablefmt='psql', showindex=False))
注意:请保证groupby里的列名和你原始xlsx的列名大小写完全匹配,避免出现匹配不到列的问题。
内容的提问来源于stack exchange,提问作者AmySQL
相关产品推荐
相关产品推荐

