如何在写入CSV文件时在Python中按结果显示列名?

时间:2017-10-26 06:15:57

标签: python pandas

我有这样的输入数据,

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)

是否有人请帮助我如何将列作为标题按结果分组?

3 个答案:

答案 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)