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

时间:2018-01-22 15:40:53

标签: 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包含重复的部分。我想巩固重复的部分,结合他们的REFDES,并跟踪数量。理想的输出看起来像这样:

    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

1 个答案:

答案 0 :(得分: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