Python 计算数据帧中的重复值并合并它们

Python 计算数据帧中的重复值并合并它们,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个包含零件及其某些属性的BOM表 REFDES Tol size value 0 R1 1% CR0402 10K 1 R2 1% CR0402 1K 2 C1 20% CC0603 10uF 3 C2 20% CC0603 10uF 4 C3 10% CC0603 10uF 5 R3 1% CR0402 10K BOM表包含重复的零件。我想合并重复的部分,合并它们的参照标示元件

我有一个包含零件及其某些属性的BOM表

  REFDES  Tol    size value
0     R1   1%  CR0402   10K
1     R2   1%  CR0402    1K
2     C1  20%  CC0603  10uF
3     C2  20%  CC0603  10uF
4     C3  10%  CC0603  10uF
5     R3   1%  CR0402   10K
BOM表包含重复的零件。我想合并重复的部分,合并它们的参照标示元件,并跟踪数量。理想的输出如下所示:

    QTY REFDES  Tol    size value
0    2  R1,R3   1%  CR0402   10K
1    1     R2   1%  CR0402    1K
2    2  C1,C2  20%  CC0603  10uF
3    1     C3  10%  CC0603  10uF
到目前为止,我已经能够识别重复的零件并计算它们的数量,但我不确定是否有一种优雅的方法来跟踪REFDES属性

这是我到目前为止所做的

df = df.groupby(['size', 'value', 'Tol']).size().reset_index(name='QTY')

     size value  Tol  QTY
0  CC0603  10uF  10%    1
1  CC0603  10uF  20%    2
2  CR0402   10K   1%    2
3  CR0402    1K   1%    1

使用
agg
+
set

df.groupby(['size', 'value', 'Tol']).agg([lambda x : ','.join(x),'count']).reset_index()
Out[441]: 
     size value  Tol   REFDES      
                     <lambda> count
0  CC0603  10uF  10%       C3     1
1  CC0603  10uF  20%    C1,C2     2
2  CR0402   10K   1%    R1,R3     2
3  CR0402    1K   1%       R2     1
df.groupby(['size','value','Tol']).agg([lambda x:','join(x),'count']).reset_index()
Out[441]:
参考标示元件的尺寸值
计数
0 CC0603 10uF 10%C3 1
1 CC0603 10uF 20%C1,C2 2
2 CR0402 10K 1%R1,R3 2
3 CR0402 1K 1%R2 1

可以改为
lambda x:','。加入(x)
使用
','。加入