gpt4 book ai didi

python - pandas 如何将一列数据转换为另一列数据?

转载 作者:太空宇宙 更新时间:2023-11-03 15:33:57 25 4
gpt4 key购买 nike

我有一个pandas生成的dataframe,如下:

NO  CODE
1 a
2 a
3 a
4 a
5 a
6 a
7 b
8 b
9 a
10 a
11 a
12 a
13 b
14 a
15 a
16 a

我想将 CODE 列数据转换为 NUM 列。编码规则如下:

NO CODE NUM
1 a 1
2 a 2
3 a 3
4 a 4
5 a 5
6 a 6
7 b b
8 b b
9 a 1
10 a 2
11 a 3
12 a 4
13 b b
14 a 1
15 a 2
16 a 3

谢谢!

最佳答案

尝试:

a_group = df.CODE.eq('a')

df['NUM'] = np.where(a_group,
df.groupby(a_group.ne(a_group.shift()).cumsum())
.CODE.cumcount()+1,
df.CODE)

df = pd.DataFrame({'CODE':list('baaaaaabbaaaabbaa')})

产量

    CODE    NUM
-- ------ -----
0 b b
1 a 1
2 a 2
3 a 3
4 a 4
5 a 5
6 a 6
7 b b
8 b b
9 a 1
10 a 2
11 a 3
12 a 4
13 b b
14 b b
15 a 1
16 a 2

关于python - pandas 如何将一列数据转换为另一列数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56086666/

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