繁体   English   中英

按另一列分组时获取列的不同元素的数量

[英]Get the number of different elements of a column when grouping by another column

我正在使用这个熊猫数据框:

      Id     nb   sampleId
0      A     1       sA
1      B     2       sB
2      C     3       sD
3      D     4       sF
4      D     5       sF
5      A     6       sF
6      E     7       sF
7      F     8       sO
8      G     9       SP
9      H    10       SS
10     I    11       sK
11     C    12       sL

我正在尝试将另一个数据sampleIdId分组作为第一列,并将不同sampleId的数量作为第二列。 所以我想要的输出是这样的:

     Id  sampleId
0     A         2
1     B         1
2     C         2
3     D         1
4     E         1
5     F         1
6     G         1
7     H         1
8     I         1

我试过这个:

df2=df.groupby(['Id'])['sampleId'].count().reset_index()

这只是计算每个Id重复的次数,而不是我正在寻找的(如您所见,元素 D 似乎在两个不同的 sampleId 中重复,而实际上它在同一个 sampleId 中出现了两次):

  srcId  sampleId
0     A         2
1     B         1
2     C         2
3     D         2
4     E         1
5     F         1
6     G         1
7     H         1
8     I         1

我怎样才能做到这一点?

用 -

df.groupby(['Id'])['sampleId'].nunique().reset_index()

输出

Id  sampleId
0   A   2
1   B   1
2   C   2
3   D   1
4   E   1
5   F   1
6   G   1
7   H   1
8   I   1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM