【问题标题】:Averaging multiple values in a Python Dataframe在 Python 数据框中平均多个值
【发布时间】:2017-11-09 17:58:14
【问题描述】:

我有一个针对某个主题进行的测试列表,保存在数据框中。有多个测试,所有这些测试都在不同的日期重复了多次。

我希望使用 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

【问题讨论】:

    标签: python dataframe iteration average


    【解决方案1】:

    在拆分-应用-组合模式中考虑这个问题。在这种情况下,您希望将所有测试组合在一起(通过测试拆分数据集并合并结果数据集)并计算所有值的平均值(对值应用均值函数)

    这是一篇很好的文章,解释了 pandas 的分组和聚合功能: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)
    

    【讨论】:

      猜你喜欢
      • 2018-02-25
      • 1970-01-01
      • 2021-01-11
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多