gpt4 book ai didi

python - 替换最后一个有效项的值 - Pandas

转载 作者:行者123 更新时间:2023-12-02 15:20:50 25 4
gpt4 key购买 nike

我想根据 pandas df 中的另一列替换列中的值。具体来说,在 col B == X 的情况下,我想更改 col C 中的值,但针对给定序列中的最后一个 X 。我可以更改 C 中所有相应的 X。但我只想替换最后一个有效的X掩码和最后一个有效值在这里是否理想?

X 以随机顺序和分组出现

df = pd.DataFrame({   
'A' : [1,1,1,1,1,1,1,1],
'B' : ['X','X','X','D','A','A','X','D'],
'C' : [1,1,1,1,1,1,1,1],
})

df.loc[df['B'] == 'X', ['C']] = 'str'

mask = df['B'] == 'X'

预期输出:

   A  B    C
0 1 X 1
1 1 X 1
2 1 X str
3 1 D 1
4 1 A 1
5 1 A 1
6 1 X str
7 1 D 1

最佳答案

您可以将 shiftnumpy.where 一起使用

import numpy as np

b1 = df["B"].shift(-1)
df["C"] = np.where((df["B"]=="X") & (b1!="X"), "str" , df["C"])

输出:

    A   B   C
0 1 X 1
1 1 X 1
2 1 X str
3 1 D 1
4 1 A 1
5 1 A 1
6 1 X str
7 1 D 1

关于python - 替换最后一个有效项的值 - Pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60200831/

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