我有一个在数据框中保存的主题测试列表。有多个测试,所有测试都在不同的日期重复多次。
我希望使用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
答案 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)