Pandas groupby 计数
本篇文章解释了如何从 DataFrame.groupby()
方法中获取像 count
、sum
、max
等派生组的统计数据。
我们将用上面例子中所示的 automobile_data_df
来解释这些概念。DataFrame 由员工和他们使用的汽车和自行车品牌组成。
import pandas as pd
automobile_data = [['Chevrolet', 'Yamaha'],
['Toyota', 'Ducati'],
['Volkswagen', 'BMW'],
['Cherlovet', 'Kawasaki'],
['Toyota', 'Ducati'],
['Toyota', 'BMW'],
['Volkswagen', 'BMW']]
column_names = ["Car Brand", "Motorbike Brand"]
index_names = ["Steven", "Robert", "Jimmy", "Mike", "Phoenix", "Scott", "John"]
automobile_data_df = pd.DataFrame(
automobile_data, index=index_names, columns=column_names)
print(automobile_data_df)
输出:
Car Brand Motorbike Brand
Steven Chevrolet Yamaha
Robert Toyota Ducati
Jimmy Volkswagen BMW
Mike Cherlovet Kawasaki
Phoenix Toyota Ducati
Scott Toyota BMW
John Volkswagen BMW
使用 Series.value_counts()
方法计算唯一行值的数值
如果我们想要一个 DataFrame 中单列的每个唯一值的计数,我们可以使用 Series.value_counts()
方法。
import pandas as pd
automobile_data = [['Chevrolet', 'Yamaha'],
['Toyota', 'Ducati'],
['Volkswagen', 'BMW'],
['Cherlovet', 'Kawasaki'],
['Toyota', 'Ducati'],
['Toyota', 'BMW'],
['Volkswagen', 'BMW']]
column_names = ["Car Brand", "Motorbike Brand"]
index_names = ["Steven", "Robert", "Jimmy", "Mike", "Phoenix", "Scott", "John"]
automobile_data_df = pd.DataFrame(
automobile_data, index=index_names, columns=column_names)
print(automobile_data_df["Car Brand"].value_counts())
输出:
Toyota 3
Volkswagen 2
Cherlovet 1
Chevrolet 1
Name: Car Brand, dtype: int64
它将打印 automobile_data_df
中 Car Brand
列中所有的唯一值及其计数。该方法只适用于我们希望一次只看到一列的数值计数。
使用 DataFrame.groupby()
函数对 DataFrame 组的值进行计数
我们使用 DataFrame.groupby()
函数将一个 DataFrame 分割成多个组,然后使用 size()
方法计算每个创建组的值。
import pandas as pd
automobile_data= [['Chevrolet', 'Yamaha'],
['Toyota','Ducati'],
['Volkswagen','BMW'],
['Cherlovet','Kawasaki'],
['Toyota','Ducati'],
['Toyota','BMW'],
['Volkswagen','BMW']]
column_names=["Car Brand","Motorbike Brand"]
index_names=["Steven","Robert","Jimmy","Mike","Phoenix","Scott","John"]
automobile_data_df=pd.DataFrame(automobile_data,index=index_names,columns=column_names)
group=automobile_data_df.groupby(["Car Brand","Motorbike Brand"])
print(group.size().reset_index(name='counts'))
输出:
Car Brand Motorbike Brand counts
0 Cherlovet Kawasaki 1
1 Chevrolet Yamaha 1
2 Toyota BMW 1
3 Toyota Ducati 2
4 Volkswagen BMW 2
它打印一个 DatFrame,其中包含了所有来自 automobile_data_df
的 Car Brand
和 Motorbike Brand
列的值的唯一组合,以及这些组合在 automobile_data_df
DataFrame 中出现的次数。
groupby()
方法将 automobile_data_df
分割成组。Car Brand
和 Motorbike Brand
两列数值相同的行将被放置在同一组中。size()
方法会给出每组的值的数量,最后我们根据每组的值的数量生成 DataFrame。
使用 pandas.DataFrame.agg()
方法获取每组的多个统计值
import pandas as pd
automobile_data = [['Chevrolet', 'Yamaha', 4000],
['Toyota', 'Ducati', 5000],
['Volkswagen', 'BMW', 4500],
['Cherlovet', 'Kawasaki', 3800],
['Toyota', 'Ducati', 4500],
['Toyota', 'BMW', 5000],
['Volkswagen', 'BMW', 6000]]
column_names = ["Car Brand", "Motorbike Brand", "Monthly Salary"]
index_names = ["Steven", "Robert", "Jimmy", "Mike", "Phoenix", "Scott", "John"]
automobile_data_df = pd.DataFrame(
automobile_data, index=index_names, columns=column_names)
group = automobile_data_df.groupby(["Car Brand", "Motorbike Brand"])
print(group.agg({"Monthly Salary": [min, max, sum]}))
输出:
Monthly Salary
min max sum
Car Brand Motorbike Brand
Cherlovet Kawasaki 3800 3800 3800
Chevrolet Yamaha 4000 4000 4000
Toyota BMW 5000 5000 5000
Ducati 4500 5000 9500
Volkswagen BMW 4500 6000 10500
它显示每个生成组的 Monthly Salary
值的最小值、最大值和总和。
相关文章
Django 中的 Slug
发布时间:2023/05/04 浏览次数:173 分类:Python
-
本篇文章旨在定义一个 slug 以及我们如何使用 slug 字段在 Python 中使用 Django 获得独特的帖子。
在 Django 中按降序过滤查询集中的项目
发布时间:2023/05/04 浏览次数:157 分类:Python
-
在这个讲解中,学习如何借助 Django 中的 order_by() 方法按降序过滤出查询集中的项目。
Django ALLOWED_HOSTS 介绍
发布时间:2023/05/04 浏览次数:181 分类:Python
-
本文展示了如何创建您的 Django 网站,为公开发布做好准备,如何设置 ALLOWED_HOSTS 以及如何在使用 Django 进行 Web 部署期间修复预期的主要问题。
Django 中的 Select_related 方法
发布时间:2023/05/04 浏览次数:129 分类:Python
-
本文介绍了什么是查询集,如何处理这些查询以及我们如何利用 select_related() 方法来过滤 Django 中相关模型的查询。
使用 Post 请求将数据发送到 Django 服务器
发布时间:2023/05/04 浏览次数:159 分类:Python
-
在这篇关于Django的讲解中,我们简要介绍了post和get请求以及如何在Django中用post实现CSRF token。
Django 返回 JSON
发布时间:2023/05/04 浏览次数:106 分类:Python
-
在与我们的讨论中,我们简要介绍了 JSON 格式,并讨论了如何借助 Django 中的 JsonResponse 类将数据返回为 JSON 格式。
在 Django 中创建对象
发布时间:2023/05/04 浏览次数:59 分类:Python
-
本文的目的是解释什么是模型以及如何使用 create() 方法创建对象,并了解如何在 Django 中使用 save() 方法。
在 Django 中为多项选择创建字段
发布时间:2023/05/04 浏览次数:75 分类:Python
-
在本文中,我们将着眼于为多项选择创建一个字段,并向您展示如何允许用户在 Django 中进行多项选择。