gpt4 book ai didi

python - 根据其他列的值在 pandas 中创建新列

转载 作者:行者123 更新时间:2023-11-30 22:39:34 25 4
gpt4 key购买 nike

我正在处理以下数据框:

          p                      q 
0 11 2
1 11 2
2 11 2
3 11 3
4 11 3
5 12 2
6 12 2
7 13 2
8 13 2

我想创建一个新列,例如s,它从 0 开始并继续。这个新列基于“p”列,每当 p 更改时,“s”也应该更改。

对于前 4 行,“p”= 11,因此前 4 行的“s”列的值应为 0,依此类推...

以下是预期的 df:

     s             p         q 

0 0 11 2
1 0 11 2
2 0 11 2
3 0 11 2
4 1 11 4
5 1 11 4
6 1 11 4
7 1 11 4
8 2 12 2
9 2 12 2
10 2 12 2
11 3 12 3
12 3 12 3

最佳答案

您需要 diffcumsum(如果您希望 id 从 0 开始,则减一):

df["finalID"] = (df.ProjID.diff() != 0).cumsum()
df

enter image description here

更新,如果您想同时考虑voyg_idProjID,您可以使用OR两列差异的条件,这样无论哪一列发生变化,最终的 id 都会增加。

df['final_id'] = ((df.voyg_id.diff() != 0) | (df.proj_id.diff() != 0)).cumsum()
df

enter image description here

关于python - 根据其他列的值在 pandas 中创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43124833/

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