【问题标题】:Filling missing values based on multi-column subgroup基于多列子组填充缺失值
【发布时间】:2022-01-07 12:29:51
【问题描述】:

我想通过两列子组的平均值填充 DataFrame 缺失的“年龄”值。

df.groupby(["col_x","col_y"])["Age"].mean()

上面的代码返回这些子组的均值:

col_X   col_Y
X       1         35
        2         29
        3         22
Y       1         41
        2         31
        3         27

我感觉这可以通过使用 .map 函数来实现:

df.loc[df['Age'].isnull(),'Age'] = df[['col_X',"col_Y"]].map(something)

谁能帮我解决这个问题?

【问题讨论】:

    标签: python pandas dataframe dictionary pandas-groupby


    【解决方案1】:

    最好使用groupby().transform,它返回一个与df 具有相同索引的系列。所以你可以用它fillna

    df['Age'] = df['Age'].fillna(df.groupby(['col_x','col_y'])['Age'].transform('mean'))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-26
      • 2012-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多