我有一个pandas DataFrame,其中一些行具有相同的ID但名称不同。我想要的是将行对减少到一行,并显示它们的名称。
INPUT:
ID NAME AGE
149 Bob 32
150 Tom 53
150 Roberts 53
151 Pamela 28
152 Andrew 23
输出:
ID NAME AGE
149 Bob 32
150 Tom Roberts 53
151 Pamela 58
152 Andrew 23
否则,我也可以[' Tom',' Roberts']或任何其他仍然捕获数据的方法。
答案 0 :(得分:2)
使用groupby
轻松完成。
df = df.groupby('ID', as_index=False)\
.agg({'NAME' : ' '.join, 'AGE' : 'first'})
print(df)
ID NAME AGE
149 Bob 32
150 Tom Roberts 53
151 Pamela 28
152 Andrew 23