如何在python中找到唯一行的平均值

时间:2017-04-03 01:09:22

标签: python dataframe dataset

我想在python中使用数据框找到唯一值的平均值。 例如,我有一个数据集:

 [c1]   [c2]
 foo    3.2 
 bar    4.3 
 foo    3.0 
 foo    2.3 
 bar    4.5 
 foo    1.9 
 bar    4.4

我希望输出为:

foo = 4的平均值和foo的平均值为2.6 //(即。(3.2 + 3.0 + 2.3 + 1.9)/ 4))

bar的数量= 3,bar的平均值为4.4 //(即。(4.3 + 4.5 + 4.4)/ 3))

1 个答案:

答案 0 :(得分:0)

假设您将值存储在名为data_averages的列表中:

import numpy as np # numpy module

# Your data_averages list that contains average

foo_list=[]
bar_list=[]

for i in range(len(data_averages)):
    if data_averages[i] == 'foo':
        foo_list.append(data_averages[i][1])
    else:
        bar_list.append(data_averages[i][1])

foo_avg = np.average(foo_list)
bar_list= np.average(bar_list)

print('Foo: ', foo_avg)
print('Bar: ', bar_avg)

基本上,您的脚本会检查列表的第一列(data_averages)。

您的列表可能看起来像这样,以便您的代码可以使用:

# Make sure it is in following format: [string, float]
[['foo', 3.2],
['bar', 4.3],
['foo', 3.0]]
# And so on...

我希望这有帮助!如果代码中有错误,请在下面发表评论,我会尽力尽快回复。