通过保持所有字符列保持不变来进行分组

时间:2017-05-17 13:40:51

标签: python pandas group-by aggregate

我有一个数据框,

    chrom   ID          Name         Sample
0   22  26920140.0  CTA15             PE12
1   22  41830075.0  CTA15             PE14
2   10  134596540.0 RP11.3           AE29
5   12  117142987.0 RP11.2         AE30
6   14  50793639.0  RP11.4          AE31

我只需要计算数据farme中Name的出现次数,我还需要保留其他列。所以我试着,

   df['count']= df.groupby('gene', as_index=True).agg(len)

  chrom start   Name Samples
    gene                                                                                
    CTA15   2   1.0 1.0 1
    RP11.3  1   1.0 1.0 1

我没有看到我的行的价值,只是数字,任何帮助都会很棒

1 个答案:

答案 0 :(得分:1)

使用transform

df['count']= df.groupby('Name')['Name'].transform(len)
print (df)
   chrom           ID    Name Sample  count
0     22   26920140.0   CTA15   PE12      2
1     22   41830075.0   CTA15   PE14      2
2     10  134596540.0  RP11.3   AE29      1
5     12  117142987.0  RP11.2   AE30      1
6     14   50793639.0  RP11.4   AE31      1
df['count']= df.groupby('Name')['Name'].transform('size')
print (df)
   chrom           ID    Name Sample  count
0     22   26920140.0   CTA15   PE12      2
1     22   41830075.0   CTA15   PE14      2
2     10  134596540.0  RP11.3   AE29      1
5     12  117142987.0  RP11.2   AE30      1
6     14   50793639.0  RP11.4   AE31      1