python - python - 如何在python pandas的两个级别上进行分组计数值?
问题描述
我有以下数据框
import pandas as pd
import numpy as np
df = pd.DataFrame()
df['Name'] = ['AK', 'Ram', 'Ram', 'Singh', 'Murugan', 'Kishore', 'AK']
df['Email'] = ['AK@gmail.com', 'a@djgbj.com', 'a@djgbj.com', '3454@ghhg.io', 'dgg@qw.cc', 'dgdg@dg.com', 'AK@gmail.com']
df['Cat'] = ['ab1', 'ab2', 'ab1', 'ab2', 'ab1', 'ab2', 'ab1']
df['Id'] = ['abc1', 'abc2', 'abc3', 'abc4', 'abc5', 'abc6', 'abc7']
对于以下代码
dfs=df.groupby(['Email', 'Cat'])['Email'].count().reset_index(name='Number')
它给:
Email Cat Number
0 3454@ghhg.io ab2 1
1 AK@gmail.com ab1 2
2 a@djgbj.com ab1 1
3 a@djgbj.com ab2 1
4 dgdg@dg.com ab2 1
5 dgg@qw.cc ab1 1
如何在 dfs 上分组以获得以下输出?
Cat Number Count
ab1 1 3
ab1 2 1
ab2 1 3
解决方案
df1 = dfs.groupby(['Cat','Number']).size().reset_index(name='Count')
或者:
df1 = dfs.groupby(['Cat','Number'])['Email'].value_counts().reset_index(name='Count')
print(df1)
Cat Number Count
0 ab1 1 2
1 ab1 2 1
2 ab2 1 3
推荐阅读
- c# - 更新数据库永远不会在第一次工作,必须做两次?
- node.js - Fastify 在生产模式下停止
- python - 如何跳过错误并继续运行for循环并继续下一行
- python - 查找列表中重复元素的位置
- excel - Excel 数据透视表计算每年来自客户的订单数
- excel - vba:将每个文件中的一列插入文件夹和子文件夹
- python - Coding theory - Algorithm
- c - Why is there a number 22 in GCC's implementation of a VLA (variable-length array)?
- sql - How do I do a look up from a user table where the user can be in two columns of the record?
- react-native - Janus / React Native:远程视频是空白的