熊猫:变换列以连接唯一元素



我正在 Pandas 中做一个分组来组合数据,但我只想在列中包含唯一元素。

我目前正在运行:

df.groupby(['Col1','Col2'])['Grade'].transform(lambda x: ','.join(x))

这将产生:

Col1   Col2   Grade
1      1      A-,A-,B+
1      2      A,B,B-,B-
2      1      B,C,C,D
...

如何仅对成绩列的唯一元素执行联接,以便我的输出如下所示:

Col1   Col2   Grade
1      1      A-,B+
1      2      A,B,B-
2      1      B,C,D
...

使用set删除聚合中的重复项:

df.groupby(['Col1','Col2'])['Grade'].transform(lambda x: ','.join(set(x)))

或者要保持正确的顺序,请使用np.unique

df.groupby(['Col1','Col2'])['Grade'].transform(lambda x: ','.join(np.unique(x)))

最新更新