如何根据Pandas中的另一列替换列中的重复值以使其唯一?

如果它们是重复的,并且另一个列值是重复的,我会尝试使列唯一。在这个数据集中。

    Name    Age
0   Tom 20
1   Tom 20
2   Jack    19
3   Terry   18
4   Terry   20

如果我们有超过1个Terry并且年龄不匹配,我想让Tom保持与terry相同的位置,成为Terry_1和Terry_2,以此类推。我尝试了下面的代码。

import pandas as pd
import numpy as np
data = {'Name':['Tom', 'Tom', 'Jack', 'Terry','Terry'], 'Age':[20, 20, 19, 18,20]} 
df = pd.DataFrame(data)
df.Name=df.Name+df.groupby(['Name','Age']).cumcount().astype(str)

我得到的是:

Name    Age
0   Tom0    20
1   Tom1    20
2   Jack0   19
3   Terry0  18
4   Terry0  20

我想要的是:

Name    Age
0   Tom 20
1   Tom 20
2   Jack    19
3   Terry_1 18
4   Terry_2 20

因为汤姆的年龄是一样的,所以我们知道我们有相同的汤姆,但是基于年龄的特里是不同的。

谢谢你,山姆

转载请注明出处:http://www.intsu.net/article/20230524/2466570.html