python - 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 功能不是办法,但是办法是什么?有成对计数功能吗?交叉表功能?
解决方案
我找到了完成这项工作的函数 pandas.crosstab。
pandas.crosstab(df['City'], df['Cluster']).T
推荐阅读
- java - Retrofit 2.7.1 连接失败
- java - Firebase 在加载到嵌套对象时返回空数据快照
- c# - 自定义控件绑定设置器未触发
- javascript - 获取表格第二列的值,然后用 Javascript 绘制它
- javascript - 测试反应 redux 渲染返回未定义的组件
- c - 如何设置动态切换定义的宏?
- javascript - 用于电子邮件验证的 RegExp 未正确读取字符串(使用 React,没有 JSX)
- c# - 对基于属性的数据类型集执行自定义验证
- algorithm - 使用 OptaPlanner 将具有 z 分组约束的未定义数量的组中的 x 实体分组
- angular - Button Debounce 提交表单