使用drop=True
不创建新列的参数index
但将其删除:
result = df.groupby(['ID']).agg({'TIME': 'mean', 'ID': 'count'}).reset_index(drop=True) print (result) ID TIME 0 3 2.666667 1 1 3.000000
但是如果需要索引中的新列rename
首先需要旧列名:
result = df.groupby(['ID']).agg({'TIME': 'mean', 'ID': 'count'}) .rename(columns={'ID':'COUNT','TIME':'MEAN_TIME'}) .reset_index() print (result) ID COUNT MEAN_TIME 0 1 3 2.666667 1 2 1 3.000000
解决方案如果需要通过多列进行聚合:
result = df.groupby(['ID']).agg({'TIME':{'MEAN_TIME': 'mean'}, 'ID': {'COUNT': 'count'}}) result.columns = result.columns.droplevel(0) print (result.reset_index()) ID COUNT MEAN_TIME 0 1 3 2.666667 1 2 1 3.000000