我有这样的输入数据,
ID days
1 02
1 24
2 12
3 10
csv文件中的预期结果应为
ID Avg. days
1 13
2 12
3 10
使用我的代码,我只能获得平均值,无法获取ID。但我同时需要它。
ID = tempx.groupby('ID')['days'].mean()
ID.to_csv("file1.csv", sep=',',encoding='utf-8',index = False)
是否有人请帮助我如何将列作为标题按结果分组?
答案 0 :(得分:2)
不要通过index=False
tempx.groupby('ID').days.mean().to_frame('Avg. days').to_csv(
'file.csv', encoding='utf-8')
答案 1 :(得分:1)
我认为您需要reset_index
参数name
:
ID = tempx.groupby('ID')['days'].mean().reset_index(name='Avg. days')
print (ID)
ID Avg. days
0 1 13
1 2 12
2 3 10
ID.to_csv("file1.csv", sep=',',encoding='utf-8',index = False)
答案 2 :(得分:1)
.groupby('ID')
将'ID'
设置为索引。保存文件如下:
ID = tempx.groupby('ID')['days'].mean()
ID.to_csv("file1.csv", sep=',',encoding='utf-8',index = True)
或使用as_index = False
ID = tempx.groupby('ID', as_index = False)['days'].mean()
ID.to_csv("file1.csv", sep=',',encoding='utf-8',index = False)