我有一个像这样简单的数据:
df = pd.DataFrame({'class':['a','b','c','d','e'],
'name':['Adi','leon','adi','leo','andy'],
'age':['9','8','9','9','8'],
'score':['40','90','35','95','85']})结果是这样的
class name age score
a Adi 9 40
b leon 8 90
a adi 9 35
d leo 9 95
e andy 8 85如何将名为'Adi‘的行与'adi’合并到同一列,而他只有一个人,而'Adi‘的得分是75,而不是40和35。
发布于 2022-01-08 15:07:51
如果你使用熊猫,drop_duplicates()是最好的方法
df['name'] = df['name'].str.lower()
df['score'] = df['score'].astype(int)
df['score'] = df['score'].groupby(df['name']).transform(sum)
df.drop_duplicates(subset='name',keep='first',inplace=True)产出:
class name age score
0 a adi 9 75
1 b leon 8 90
3 d leo 9 95
4 e andy 8 85如果您设置keep='last',您将获得此输出。
class name age score
1 b leon 8 90
2 c adi 9 75
3 d leo 9 95
4 e andy 8 85https://stackoverflow.com/questions/70633347
复制相似问题