如何通过 pandas 中的两列来计算唯一记录? [英] How to count unique records by two columns in pandas?
本文介绍了如何通过 pandas 中的两列来计算唯一记录?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的熊猫有数据框:
In [10]: df
Out[10]:
col_a col_b col_c col_d
0 France Paris 3 4
1 UK Londo 4 5
2 US Chicago 5 6
3 UK Bristol 3 3
4 US Paris 8 9
5 US London 44 4
6 US Chicago 12 4
我需要计算独特的城市.我可以数出独特的状态
I need to count unique cities. I can count unique states
In [11]: df['col_a'].nunique()
Out[11]: 3
我可以尝试计算独特的城市
and I can try to count unique cities
In [12]: df['col_b'].nunique()
Out[12]: 5
但这是错误的,因为美国巴黎和法国巴黎是不同的城市.所以现在我正在这样做:
but it is wrong because US Paris and Paris in France are different cities. So now I'm doing in like this:
In [13]: df['col_a_b'] = df['col_a'] + ' - ' + df['col_b']
In [14]: df
Out[14]:
col_a col_b col_c col_d col_a_b
0 France Paris 3 4 France - Paris
1 UK Londo 4 5 UK - Londo
2 US Chicago 5 6 US - Chicago
3 UK Bristol 3 3 UK - Bristol
4 US Paris 8 9 US - Paris
5 US London 44 4 US - London
6 US Chicago 12 4 US - Chicago
In [15]: df['col_a_b'].nunique()
Out[15]: 6
也许有更好的方法?无需创建其他列.
Maybe there is a better way? Without creating an additional column.
推荐答案
通过使用ngroups
df.groupby(['col_a', 'col_b']).ngroups
Out[101]: 6
或使用set
len(set(zip(df['col_a'],df['col_b'])))
Out[106]: 6
这篇关于如何通过 pandas 中的两列来计算唯一记录?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文