我在 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
我需要计算独特的城市。我可以计算独特的状态
In [11]: df['col_a'].nunique()
Out[11]: 3
我可以尝试计算独特的城市
In [12]: df['col_b'].nunique()
Out[12]: 5
但这是错误的,因为美国的巴黎和法国的巴黎是不同的城市。所以现在我这样做:
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
也许有更好的方法?无需创建额外的列。
最佳答案
通过使用ngroups
df.groupby(['col_a', 'col_b']).ngroups
Out[101]: 6
或者使用set
len(set(zip(df['col_a'],df['col_b'])))
Out[106]: 6
关于python - 如何通过 Pandas 中的两列计算唯一记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47023541/