处理数据框中具有多个项目的值

时间:2020-04-07 12:26:27

标签: python pandas dataframe

假设我的数据框

  Name  Value
0   A   apple
1   A   banana
2   A   orange
3   B   grape
4   B   apple
5   C   apple
6   D   apple
7   D   orange
8   E   banana

我想显示每个名称的项目。 (通过删除重复项)

输出我想要的

  Name  Values
0   A   apple, banana, orange
1   B   grape, apple
2   C   apple
3   D   apple, orange
4   E   banana

感谢您阅读

1 个答案:

答案 0 :(得分:1)

已更改的样本数据具有重复项:

print (df)
   Name   Value
0     A   apple
1     A   apple
2     A  banana
3     A  banana
4     A  orange
5     B   grape
6     B   apple
7     C   apple
8     D   apple
9     D  orange
10    E  banana

如果有必要在两列中重复,请先删除DataFrame.drop_duplicates,然后再汇总join

df1 = (df.drop_duplicates(['Name','Value'])
         .groupby('Name')['Value']
         .agg(','.join)
         .reset_index())
print (df1)
  Name                Value
0    A  apple,banana,orange
1    B          grape,apple
2    C                apple
3    D         apple,orange
4    E               banana

如果未删除,则重复输出为:

df2 = (df.groupby('Name')['Value']
         .agg(','.join)
         .reset_index())
print (df2)
  Name                             Value
0    A  apple,apple,banana,banana,orange
1    B                       grape,apple
2    C                             apple
3    D                      apple,orange
4    E                            banana