【问题标题】:estimate the average value group by a specific column using python使用python估计特定列的平均值组
【发布时间】:2020-07-15 16:41:38
【问题描述】:

我有一个包含 2 列的 ascii 文件,如下所示;

id value
1  15.1
1  12.1 
1  13.5
2  12.4
2  12.5
3  10.1
3  10.2
3  10.5
4  15.1
4  11.2
4  11.5
4  11.7
5  12.5
5  12.2

我想估计每个 id 列“value”的平均值(即按 id 分组)

是否可以在 python 中使用 numpy 或 pandas 做到这一点?

【问题讨论】:

    标签: python numpy average


    【解决方案1】:

    如果您不知道如何读取文件,您可以使用多种方法,如您可以看到的 here,因此您可以尝试其中一种,例如pd.read_csv().

    读完文件后,您可以尝试使用 pandas 函数 pd.DataFrame.groupbypd.Series.mean()

    df.groupby('id').mean()
    
    #if df['id'] is the index, try this:
    #df.reset_index().groupby('id').mean()
    

    输出:

            value
    id           
    1   13.566667
    2   12.450000
    3   10.266667
    4   12.375000
    5   12.350000
    

    【讨论】:

    • 谢谢,如果我有两个以上的列并且我想获得列“值”的平均值,我该如何定义?
    • 您可以尝试使用df.groupby('id').mean().val,因为当您使用groupby 然后应用一个函数时,如果其他列可能是str 类型,则该函数将不会被应用。但更准确地说,你可以试试这个:df.groupby('id').val.mean()
    【解决方案2】:
    import pandas as pd
    filename = "data.txt"
    df = pd.read_fwf(filename)
    df.groupby(['id']).mean()
    
    

    输出

            value
    id           
    1   13.566667
    2   12.450000
    3   10.266667
    4   12.375000
    5   12.350000
    
    

    【讨论】:

      猜你喜欢
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多