如何在Pandas数据框上使用for循环,并根据另一个列值的变化更新列

holgip5t  于 2023-04-04  发布在  其他
关注(0)|答案(1)|浏览(111)

Python初学者在这里。我正在使用pandas dataframe,我想循环每一行数据,并根据另一列的值更改一列的值。我有大约20行代码对数据行做一些事情。我想应用这些代码,但每次列中的值更改时都会重新启动。请参阅下面的示例表:

name      country  section  new_column
bob       US       1
jim       Canada   1    
christina US       2    
jason     UK       3    
kim       US       3    
chris     UK       4    
jimbo     Canada   4    
felicia   Canada   5

我想用for循环更新我的表,如下所示:

name      country  section  new_column
bob       US       1        1
jim       Canada   1        2   
christina US       2        1   
jason     UK       3        1
kim       US       3        2
chris     UK       4        1
jimbo     Canada   4        2
felicia   Canada   5        1

所以,假设我的表看起来像上面。每次列'section'的值发生变化(从1到2,3等),根据该列的值重新启动循环。我希望我可以简单地在结构化的for循环下面插入我的代码行。
我的伪代码如下:
1.对于当列'section'更改值时,请执行以下操作:
1.我的代码
1.闭环?
我希望这是有道理的。

nhaq1z21

nhaq1z211#

使用groupby_cumcount

df['new_column'] = df.groupby('section').cumcount().add(1)
print(df)

# Output
        name country  section  new_column
0        bob      US        1           1
1        jim  Canada        1           2
2  christina      US        2           1
3      jason      UK        3           1
4        kim      US        3           2
5      chris      UK        4           1
6      jimbo  Canada        4           2
7    felicia  Canada        5           1

相关问题