Python 连接表中的列值-参数
我有一张桌子Python 连接表中的列值-参数,python,pandas,Python,Pandas,我有一张桌子 mark name total point 70 bala 100 10 80 bala 100 10 80 bala 100 10 100 karthik 100 5 100 karthik 150 5 100 karthik 150 5 50 abdul 80 10 50 abdul 80 5 50 abdul 8
mark name total point
70 bala 100 10
80 bala 100 10
80 bala 100 10
100 karthik 100 5
100 karthik 150 5
100 karthik 150 5
50 abdul 80 10
50 abdul 80 5
50 abdul 80 6
我想将此表拆分如下(删除基于名称的重复列,唯一列将用逗号分隔)
使用
或者
借助透视表
df.pivot_table(index='name',aggfunc=lambda x : ','.join(x.unique().astype(str))).reset_index()
输出:
name mark point total
0 abdul 50 10,5,6 80
1 bala 70,80 10 100
2 karthik 100 5 100,150
姓名标记总分
0阿卜杜勒50 10,5,6 80
1巴拉70,80 10 100
2 karthik 100 5 100150
使用:
我们也可以在pivot表中这样做。所以我们可以保存很多参数:)。和+1用于维护订单。
In [863]: (df.astype(str).groupby('name', as_index=False, sort=False)
.apply(lambda x: x.apply(lambda x: ','.join(x.unique()))))
Out[863]:
mark name total point
0 70,80 bala 100 10
1 100 karthik 100,150 5
2 50 abdul 80 10,5,6
df.pivot_table(index='name',aggfunc=lambda x : ','.join(x.unique().astype(str))).reset_index()
name mark point total
0 abdul 50 10,5,6 80
1 bala 70,80 10 100
2 karthik 100 5 100,150
df = (df.astype(str)
.groupby('name', as_index=False, sort=False)
.agg(lambda x: ','.join(x.unique())))
print (df)
name mark total point
0 bala 70,80 100 10
1 karthik 100 100,150 5
2 abdul 50 80 10,5,6