gpt4 book ai didi

python - 如果 python pandas 中存在条件,如何用前一列值设置或替换行值

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

我正在尝试解决与在某些条件下用前一个值设置或替换行中的值相关的问题。数据如下:

Point_ID [1,2,3,1,2,1], Shape_ID [84,85,86,87,88,89]

我在条件中使用了掩码和移位,如果Point_ID以1开头,则第二行的Shape_ID应替换为前一行的值,以防数字增加。如果不是,则 Shape_ID 应保持在一行中。所以我试图获得:

Point_ID[1,2,3,1,2,1], Shape_ID[84,84,84,87,87,89] 

最佳答案

使用maskneffill:

df= pd.DataFrame({'Point_ID':[1,2,3,1,2,1] , 'Shape_ID': [84,85,86,87,88,89]})
print(df)

Point_ID Shape_ID
0 1 84
1 2 85
2 3 86
3 1 87
4 2 88
5 1 89

df.assign(Shape_ID=df['Shape_ID'].mask(df['Point_ID'].ne(1)).ffill().astype(int))

输出:

   Point_ID  Shape_ID
0 1 84
1 2 84
2 3 84
3 1 87
4 2 87
5 1 89

关于python - 如果 python pandas 中存在条件,如何用前一列值设置或替换行值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45716313/

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