【问题标题】:Fill cell containing NaN with average of value before and after considering groupby用考虑 groupby 前后的平均值填充包含 NaN 的单元格
【发布时间】:2021-10-09 00:42:48
【问题描述】:

考虑到 ID 不同,我想用缺失值前后的单元格平均值填充 pandas 数据框中的缺失值。

maskedid test  value
 1        A      4
 1        B      NaN
 1        C      5
 2        A      5
 2        B      NaN 
 2        B      2 

预期的 DF

 maskedid test  value
 1        A      4
 1        B      4.5
 1        C      5
 2        A      5
 2        B      3.5
 2        B      2 

【问题讨论】:

    标签: python pandas dataframe pandas-groupby


    【解决方案1】:

    试试interpolate:

    df['value'] = df['value'].interpolate()
    

    按组:

    df['value'] = df.groupby('maskedid')['value'].apply(pd.Series.interpolate)
    

    【讨论】:

    • 我已经试过了。它没有考虑到有不同的ID。我需要一种方法来分组,然后巧妙地使用该技术。我尝试过的方式不起作用,输出很糟糕:D
    • 然后添加groupby,查看更新后的答案。但在提供的示例中,这不应该有所作为。请用一个更好的例子更新你的问题仍然不能解决你的问题
    • 你对上面的例子是完全正确的。我已经尝试了更新的答案,我得到“'SeriesGroupBy'对象没有属性'interpolate'”
    • 该死,我现在没有电脑。我认为您可能需要使用应用。我会更新答案,如果它不起作用,我明天再检查。
    猜你喜欢
    • 1970-01-01
    • 2018-09-19
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多