gpt4 book ai didi

python - Pandas 使用与其他 Pandas 列相对应的先验值填充 NaN

转载 作者:行者123 更新时间:2023-12-01 03:29:18 27 4
gpt4 key购买 nike

我有一个非常大的数据框,如下所示:

    fraction     id                
0 0.729797 0
1 0.141084 1
2 0.226900 2
3 0.960937 3
4 0.452835 4
5 NaN 1
6 0.352142 2
7 0.104814 3
8 0.345633 4
9 0.498004 1
10 0.131665 2
11 NaN 3
12 0.886092 4
13 0.839767 1
14 0.257997 2
15 0.526350 3

目前我只是使用以下代码行用 0 填充 NaN 数据:

df.fillna(0,inplace=True)

有没有办法使用相应的“id”使用先前的“分数”值填充所有 NaN 数据?

例如,索引 #5 处的行的“fraction”值为 NaN,“id”值为 1。id #1 的先前“fraction”值为 0.141084。

有没有办法替换这个值,并对整个数据帧执行这个操作?

谢谢

最佳答案

'id' 执行 groupby,然后使用 ffill 进行前向填充:

df['fraction'] = df.groupby('id')['fraction'].ffill()

请注意,您可以通过省略 ['fraction'] 一次性对 DataFrame 中的所有列执行相同的过程。对于示例数据,输出是相同的:

df = df.groupby('id').ffill()

结果输出:

    fraction  id
0 0.729797 0
1 0.141084 1
2 0.226900 2
3 0.960937 3
4 0.452835 4
5 0.141084 1
6 0.352142 2
7 0.104814 3
8 0.345633 4
9 0.498004 1
10 0.131665 2
11 0.104814 3
12 0.886092 4
13 0.839767 1
14 0.257997 2
15 0.526350 3

关于python - Pandas 使用与其他 Pandas 列相对应的先验值填充 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41112311/

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