如何通过 pandas 中的两列来计算唯一记录? [英] How to count unique records by two columns in pandas?

查看:81
本文介绍了如何通过 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆