根据大熊猫中的另一列计算一列的平均值

时间:2020-01-28 07:17:21

标签: python pandas csv

我有一个很大的csv文件,其中的示例如下(2列多行)

date    score
1/1/16  0
2/1/16  0
3/1/16  0.2732
3/1/16  -0.6486
4/1/16  0
5/1/16  0.4404
5/1/16  -0.2732
6/1/16  -0.5859
6/1/16  0.34

您可以看到样本中有多个相同日期的分数不同(与原始文件相同,其中有数百个相同日期的分数)。我想按日期平均分数,然后将其另存为csv格式。预期结果应如下所示(每个日期一个平均分数)

date    Avg_Score
1/1/16  0
2/1/16  0
3/1/16  -0.1877
4/1/16  0
5/1/16  0.0836
6/1/16  -0.12295

如何在Python的Pandas模块中做到这一点?我检查了stackoverflow的建议,找到了loc,iloc和groupby。但是我想我不能使它们有用,因为这是我尝试过的,并且仍然得到与原始文件相同的文件(没有任何更改)。不知道为什么它不起作用以及如何使其起作用。

import pandas as pd
import csv
df = pd.read_csv('myfile.csv')

df.groupby('date').mean().reset_index()

df.to_csv('average.csv', encoding='utf-8', index=False)

由于我一直在为此苦苦挣扎,请给予任何帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

groupby方法的输出分配给变量,例如这里df1

df = pd.read_csv('myfile.csv')
#solution with renamed new column
df1 = df.groupby('date')['score'].mean().reset_index(name='Avg_Score')
#your solution
#df1 = df.groupby('date').mean().reset_index()
df1.to_csv('average.csv', encoding='utf-8', index=False)