gpt4 book ai didi

python - 使用最近的行填充数据框中的缺失值

转载 作者:行者123 更新时间:2023-12-01 02:23:27 24 4
gpt4 key购买 nike

我有以下数据框:

df = pd.DataFrame({'id': {3002: 10001,
3003: 10002,
3004: 10003,
3005: 10004,
3006: 10005,
3007: 10006,
3008: 10007,
3009: 10008,
3010: 10009,
3011: 10010,
3012: 10011,
3013: 10012,
3014: 10013,
3015: 10014,
3016: 10015,
3017: 10016,
3018: 10017,
3019: 10018,
3020: 10019,
3021: 10020},
'value': {3002: 1669.0,
3003: 1264.0,
3004: nan,
3005: 1411.0,
3006: 1224.0,
3007: 1316.0,
3008: 1736.0,
3009: nan,
3010: 1276.0,
3011: nan,
3012: nan,
3013: nan,
3014: nan,
3015: 1790.0,
3016: nan,
3017: nan,
3018: nan,
3019: 1726.0,
3020: nan,
3021: nan}})

我想用最近的 id 中的值来填充缺失值,如果两个值距离相同,那么我想使用平均值。

EG

id 10008是NaN,那么我想用10009和10007的平均值填充单元格:(1736.0 + 1276.0)/2

对于 id 10015,最接近的值是 10014,因此我将直接使用该值:1790.0

enter image description here

我怎样才能有效地完成这个任务?

最佳答案

这有点棘手,但您可以使用 interpolate() (只能用于系列):

df['value'] = df['value'].interpolate(method='slinear').interpolate(method='linear')

第二次插值只需填充系列中的最后一个 NaN。

关于python - 使用最近的行填充数据框中的缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47696754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com