Python 3.x 如果其他两列的行相同,则第三列中的唯一项计数相同
如果行中的条目具有相同的属和值,我想计算唯一ID的总数Python 3.x 如果其他两列的行相同,则第三列中的唯一项计数相同,python-3.x,pandas,Python 3.x,Pandas,如果行中的条目具有相同的属和值,我想计算唯一ID的总数 id genus value 123 yadi 1010 234 yada 1230 345 yellow 1240 123 yadi 1010 234 yada 1230 345 yellow 1240 456 vroom 1010 789 yada 1230 101 yellow 1240 121 yadi 1010 141 yada 1230 123
id genus value
123 yadi 1010
234 yada 1230
345 yellow 1240
123 yadi 1010
234 yada 1230
345 yellow 1240
456 vroom 1010
789 yada 1230
101 yellow 1240
121 yadi 1010
141 yada 1230
123 yellow 1240
234 yadi 4550
516 yada 6547
170 yellow 2310
我尝试过使用groupby和pivot表,但由于合并了这么多条件,我在介绍中遇到了麻烦
df = pandas.DataFrame({'id': [123, 234, 345, 123, 234, 345, 456, 789, 101, 121, 141, 123, 234, 516, 170],
'genus': ['yadi', 'yada', 'yellow', 'yadi', 'yada', 'yellow', 'vroom', 'yada', 'yellow','yadi', 'yada', 'yellow','yadi', 'yada', 'yellow'],
'value': [1010, 1230, 1240, 1010, 1230, 1240, 1010, 1230, 1240, 1010, 1230, 1240, 4550, 6547, 2310]})
df.pivot_table(values='genus', index='value', columns='id', aggfunc=pandas.Series.nunique)
及
我在找这样的东西:
value genus count
1010 yadi 2
1010 vroom 1
1230 yada 3
1240 yellow 4
4550 yadi 1
6547 yada 1
2310 yellow 1
任何帮助都将不胜感激。您想在
属
和值
上分组。使用文本的评论并将其转换为您想要的输出:
df=df.groupby(['value','genus']).id.nunique().to_frame()
身份证件
价值属
1010室1
亚迪2号
1230雅达3
1240黄色3
2310黄色1
4550亚迪1
6547亚达1
reset_index(drop=False).rename({'id':'count'},axis=1)
值亏格计数
0 1010 vroom 1
1010亚迪2
21230雅达3
311240黄色3
42310黄色1
54550亚迪1
66547亚达1
simple fixdf.groupby(['value','genus']).id.nunique()
value genus count
1010 yadi 2
1010 vroom 1
1230 yada 3
1240 yellow 4
4550 yadi 1
6547 yada 1
2310 yellow 1