你可以使用以下语法来计算pandas DataFrame中两列的唯一组合的数量。
df[['col1', 'col2']].value_counts().reset_index(name='count')
下面的例子展示了如何在实践中使用这种语法。
例子:计算pandas中两列的唯一组合
假设我们有如下的pandas DataFrame,显示了各种篮球运动员的球队和位置:
import pandas as pd
#create dataFrame
df = pd.DataFrame({'team': ['Mavs', 'Mavs', 'Mavs', 'Mavs',
'Heat', 'Heat', 'Heat', 'Heat'],
'position': ['Guard', 'Guard', 'Guard', 'Forward',
'Guard', 'Forward', 'Forward', 'Guard']})
#view DataFrame
df
team position
0 Mavs Guard
1 Mavs Guard
2 Mavs Guard
3 Mavs Forward
4 Heat Guard
5 Heat Forward
6 Heat Forward
7 Heat Guard
我们可以使用下面的语法来计算球队和位置的唯一组合的数量:
df[['team', 'position']].value_counts().reset_index(name='count')
team position count
0 Mavs Guard 3
1 Heat Forward 2
2 Heat Guard 2
3 Mavs Forward 1
从输出结果中我们可以看到:
- Mavs-Guard的组合有3次出现
- 热火队-前锋的组合有2次出现
- 热火-后卫的组合有2次出现
- Mavs-Forward的组合有1次出现
请注意,你也可以将结果按计数升序或降序排序。
例如,我们可以用下面的代码对结果按计数升序进行排序:
df[['team', 'position']].value_counts(ascending=True).reset_index(name='count')
team position count
0 Mavs Forward 1
1 Heat Forward 2
2 Heat Guard 2
3 Mavs Guard 3
现在的结果是按计数从小到大排序的:
注意:你可以在这里找到pandasvalue_counts()函数的完整文档。
其他资源
下面的教程解释了如何在pandas中执行其他常见任务:
Pandas:如何使用GroupBy和Value Counts
Pandas:如何使用GroupBy与Bin Counts
Pandas:如何用数值计数创建Pivot表