【问题标题】:Pandas: How to find mean of a column based on duplicate rows in another column? [duplicate]Pandas:如何根据另一列中的重复行查找列的平均值? [复制]
【发布时间】:2022-01-24 00:44:59
【问题描述】:

我正在尝试在 Pandas 中查找列的平均值。计算平均值的行需要基于另一列中的重复值。在下面的示例中,我想用基于“日期”列的每个单独日期的“湿度”列计算的平均值填充空的“平均湿度”列。例如,“mean_humidity”列中的前 3 行将是根据“湿度”列中的前 3 行计算的平均值。谢谢!

>>> import pandas as pd
>>> dates = ['1/1/2020', '1/1/2020', '1/1/2020', '1/2/2020', '1/2/2020', '1/2/2020']
>>> humidity = [11, 22, 33, 44, 55, 66]
>>> df = pd.DataFrame(list(zip(dates, humidity)),
...                columns =['dates', 'humidity'])
>>> df["mean_humidity"] = ""
>>> df
      dates  humidity mean_humidity
0  1/1/2020        11
1  1/1/2020        22
2  1/1/2020        33
3  1/2/2020        44
4  1/2/2020        55
5  1/2/2020        66

【问题讨论】:

    标签: python pandas csv


    【解决方案1】:

    按分组:

    df["mean_humidity"] = df.groupby('dates')['humidity'].transform('mean')
    print(df)
    

    输出:

    >>>
          dates  humidity  mean_humidity
    0  1/1/2020        11           22.0
    1  1/1/2020        22           22.0
    2  1/1/2020        33           22.0
    3  1/2/2020        44           55.0
    4  1/2/2020        55           55.0
    5  1/2/2020        66           55.0
    

    【讨论】:

      【解决方案2】:

      你可以使用:

      df["mean_humidity"] = df["humidity"].groupby(df["dates"]).transform("mean")
      

      输出:

          dates       humidity    mean_humidity
      0   1/1/2020    11          22.0
      1   1/1/2020    22          22.0
      2   1/1/2020    33          22.0
      3   1/2/2020    44          55.0
      4   1/2/2020    55          55.0
      5   1/2/2020    66          55.0
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-31
        • 2020-12-26
        • 1970-01-01
        • 2015-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多