首页 > 解决方案 > Pandas DataFrame:在两列上对多个组进行分组和计数

问题描述

我在熊猫中有一个这样的DataFrame:

In[1]: df
Out [1]:
    City         Cluster
0    Paris             A
1    Paris             A
2    Paris             B
3    Paris             B
4    Paris             B
5    Nairobi           C
6    Nairobi           A
7    Nairobi           C
8    Phnom_penh        B
9    Phnom_penh        B
10   Phnom_penh        B

我想为每个集群/城市计算一个城市/集群出现多少次,如下所示:

In[2]: df_count
Out[2]:
    Paris    Nairobi    Phnom_penh
A       2          1             0
B       3          0             3
C       0          2             0

我尝试使用带有计数、大小的 groupby 函数......但没有成功。

我认为 groupby 功能不是办法,但是办法是什么?有成对计数功能吗?交叉表功能?

标签: pythonpython-3.xpandasdataframe

解决方案


我找到了完成这项工作的函数 pandas.crosstab。

pandas.crosstab(df['City'], df['Cluster']).T

推荐阅读