gpt4 book ai didi

Python( Pandas ): replace value if previous value is same as next value

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

我有以下问题:

我有一个数据框,最多可能有 600 万行左右。此数据框中的一列包含某些 ID。

ID
NaN
NaN
D1
D1
D1
NaN
D1
D1
NaN
NaN
NaN
NaN
D2
NaN
D2
NaN
NaN
NaN
NaN
D3
NaN
D3
NaN
D3
NaN
NaN

我想让 ID 之间包含的 NaN 与 ID 相同。因此上面的 df 应该变成:

ID
NaN
NaN
D1
D1
D1
D1
D1
D1
NaN
NaN
NaN
NaN
D2
D2
D2
NaN
NaN
NaN
NaN
D3
D3
D3
D3
D3
NaN
NaN

有人知道如何以快速、节省内存的方式做到这一点吗?提前致谢。

最佳答案

使用shiftloc。使用 shift(1)shift(-1)

比较上一个和下一个值
In [219]: df.loc[df.ID.shift(-1) == df.ID.shift(1), 'ID'] = df.ID.shift(1)

In [220]: df
Out[220]:
ID
0 NaN
1 NaN
2 D1
3 D1
4 D1
5 D1
6 D1
7 D1
8 NaN
9 NaN
10 NaN
11 NaN
12 D2
13 D2
14 D2
15 NaN
16 NaN
17 NaN
18 NaN
19 D3
20 D3
21 D3
22 D3
23 D3
24 NaN
25 NaN

关于Python( Pandas ): replace value if previous value is same as next value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45372187/

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