如何在Pandas中为groupby生成的DataFrame自动添加默认索引
解决方案:直接生成带默认索引的聚合DataFrame
当然可以!完全不用多跑一步reset_index(),Pandas提供了非常直接的参数,让你在按国家聚合贷款金额时,直接生成带有默认整数索引的DataFrame,不用把国家列设为索引。
方法1:使用groupby()的as_index=False参数
这是最直接的方式,只需要在分组时添加这个参数,就能让分组键(这里是country)作为普通数据列保留,同时自动生成从0开始的默认整数索引:
import pandas as pd # 加载Kiva贷款数据 df = pd.read_csv('kiva_loans.csv') # 按国家聚合贷款总额,直接生成默认索引 country_loan_totals = df.groupby('country', as_index=False)['loan_amount'].sum()
方法2:多聚合场景下的用法
如果你需要同时计算多个聚合指标(比如总额、平均值、贷款笔数),同样可以用as_index=False配合agg(),结果依然会保留默认索引:
country_loan_stats = df.groupby('country', as_index=False).agg( total_loan=('loan_amount', 'sum'), average_loan=('loan_amount', 'mean'), loan_count=('loan_amount', 'count') )
原理说明
默认情况下,groupby()会把分组列设置为DataFrame的索引,而as_index=False参数会告诉Pandas:不要将分组键作为索引,而是把它当作普通的数据列,同时自动启用默认的连续整数索引,完美跳过额外的reset_index()步骤。
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

