平均Python Dataframe中的多个值

时间:2017-11-09 17:58:14

标签: python dataframe iteration average

我有一个在数据框中保存的主题测试列表。有多个测试,所有测试都在不同的日期重复多次。

我希望使用python为每个测试生成一个平均值。我可以使用iterrows()函数生成测试名称和值,但后来我卡住了。

下面我已经包含了一个表结构示例,实际上这个数据集大约有30个测试和200多行。

这是一个较大的数据库(1000000+行)的一小部分,代码可以扩展到,所以我不想只是暴力破解结果。 非常感谢!

| Test   | Value  | Date
#--------#--------#--------      
| Test A | 31     | Date1
| Test B | 14     | Date2
| Test A | 25     | Date3
| Test A | 26     | Date1
| Test B | 8      | Date1

1 个答案:

答案 0 :(得分:0)

在Split-Apply-Combine模式中考虑这个问题。在这种情况下,您希望将所有测试组合在一起(通过测试&也组合生成的数据集)拆分数据集&计算所有值的平均值(在值上应用平均函数)

这是一篇很好的文章,解释了大熊猫的分组和聚合功能:http://pbpython.com/pandas-grouper-agg.html

import pandas as pd
import numpy as np
df = pd.DataFrame(
    {'Test': ['Test A', 'Test B', 'Test A', 'Test A', 'Test B'],
    'Value': [31, 14, 25, 26, 8],
    'Date': ['Date1', 'Date2', 'Date3', 'Date1', 'Date2']}
)
df.Value.groupby(df.Test).agg(np.mean)