如何根据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