【问题标题】:pandas groupby mean with nanpandas groupby 与 nan 的意思
【发布时间】:2017-11-01 06:27:12
【问题描述】:

我有以下数据框:

date id  cars
2012 1    4  
2013 1    6
2014 1    NaN    
2012 2    10 
2013 2    20 
2014 2    NaN  

现在,我想获得忽略 NaN 的每个 id 多年来汽车的平均值。结果应该是这样的:

date id  cars  result
2012 1    4      5
2013 1    6      5
2014 1    NaN    5
2012 2    10     15
2013 2    20     15
2014 2    NaN    15

我有以下命令:

df["result"]=df.groupby("id")["cars"].mean()

命令运行没有错误,但结果列只有 NaN。 我做错了什么?

【问题讨论】:

    标签: python pandas dataframe mean pandas-groupby


    【解决方案1】:

    使用transform,这将返回一个与原始大小相同的系列:

    df["result"]=df.groupby("id")["cars"].transform('mean')
    print (df)
       date  id  cars  result
    0  2012   1   4.0     5.0
    1  2013   1   6.0     5.0
    2  2014   1   NaN     5.0
    3  2012   2  10.0    15.0
    4  2013   2  20.0    15.0
    5  2014   2   NaN    15.0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-03
      • 1970-01-01
      • 2019-11-18
      • 2018-07-06
      • 2013-08-28
      • 2018-10-07
      相关资源
      最近更新 更多