[英]use another column for grouping ,incase there is two rows with max number in the column
[英]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
我正在尝试将另一个数据sampleId
按Id
分组作为第一列,并将不同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.