追加具有相同值的行的值

时间:2016-05-18 09:44:31

标签: python pandas dataframe data-analysis data-manipulation

我有以下数据框:

1 A a
1 A b
2 B c
1 A d

如何将具有相同值的行的所有值附加到数据框:

1 A a,c,d
2 B c     

1 个答案:

答案 0 :(得分:1)

您可以使用groupbyapply函数join

df.columns = ['a','b','c']
print (df)
   a  b  c
0  1  A  a
1  1  A  b
2  2  B  c
3  1  A  d

print (df.groupby(['a', 'b'])['c'].apply(', '.join).reset_index())
   a  b        c
0  1  A  a, b, d
1  2  B        c

或者,如果第一列是index

df.columns = ['a','b']
print (df)
   a  b
1  A  a
1  A  b
2  B  c
1  A  d

df1 = df.b.groupby([df.index, df.a]).apply(', '.join).reset_index(name='c')
df1.columns = ['a','b','c']
print (df1)
   a  b        c
0  1  A  a, b, d
1  2  B        c