gpt4 book ai didi

python-3.x - 使用 Pandas 数据框识别重复组

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

我有一个如下所述的数据框,我需要根据列 - c2、c3 和 c4 找出重复的组并相应地命名组。对于 C1 列中的任何值,如果行数相同并且所有行上的值集相同,则它是一个重复组,应使用相同的组名进行标记,否则,它是一个唯一组。

数据框:

df = pd.DataFrame({'C1': ['A', 'A', 'A', 'A', 'B', 'B', 'C', 'C', 'C', 'C', 'D', 'D', 'D'],
'C2': ['1', '2', '3', '4', '1', '2', '1', '2', '3', '4', '1', '2', '3'],
'C3': ['1', '2', '3', '4', '1', '2', '1', '2', '3', '4', '1', '2', '3'],
'C4': ['1', '2', '3', '4', '1', '2', '1', '2', '3', '4', '1', '2', '3']
})

enter image description here

预期结果:

enter image description here

有什么帮助吗?

最佳答案

三步走

df['Newkey']=tuple(zip(df.C2,df.C3)) # make value to tuple 
s=df.groupby('C1').Newkey.apply(tuple)# make all value to tuple

s2='G'+(s.reset_index().groupby('Newkey',sort=False).C1.ngroup()+1).astype(str)
df['Newkey']=df.C1.map(dict(zip(s.index,s2))) # map it back
df
C1 C2 C3 Newkey
0 A 1 1 G1
1 A 2 2 G1
2 A 3 3 G1
3 A 4 4 G1
4 B 1 1 G2
5 B 2 2 G2
6 C 1 1 G1
7 C 2 2 G1
8 C 3 3 G1
9 C 4 4 G1
10 D 1 1 G3
11 D 2 2 G3
12 D 3 3 G3

关于python-3.x - 使用 Pandas 数据框识别重复组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54393090/

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