迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Pandas 中的 Groupby 索引列

作者:迹忆客 最近更新:2024/04/23 浏览次数:

本教程介绍 Python Pandas 中的 groupby 如何对数据进行分类并将函数应用于类别。使用 groupby() 函数通过示例对 Pandas 中的多个索引列进行分组。


在 Python Pandas 中使用 groupby() 函数按索引列分组

在这篇文章中,Pandas DataFrame data.groupby() 函数根据特定标准将数据分组。Pandas 对象可以沿任意轴分为任意数量的组。

标签到组名的映射是分组的抽象定义。groupby 操作拆分对象、应用函数并组合结果。

这对于对大量数据进行分组和执行操作很有用。Pandas groupby 默认行为将 groupby 列转换为索引,并将它们从 DataFrame 的列列表中删除。

语法:

DataFrame.groupby(
    by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True
)

参数:

by 映射、函数、字符串或可迭代对象
axis 整数,默认值 0
level 对于多索引轴,按特定级别或级别(分层)分组。
as_index 作为聚合输出的索引,返回一个带有组标签的对象。这仅适用于 DataFrame 输入。当 index=False 时,输出以 SQL 样式分组。
sort 应该对组中的键进行排序。将其关闭以提高性能。应该注意的是,每组内的观察顺序不受此影响。Groupby 维护每个组内的行顺序。
group_keys 调用 apply 时将组键添加到索引以识别碎片挤压:如果可能,减少返回类型的维数;否则,返回一致的类型。

取一个包含两列的 DataFrame:dateitem sellGroupby 日期和项目销售并获取用户的逐项计数。

首先,我们需要导入必要的库 pandasnumpy,创建三个列 ctdateitem_sell 并将一组值传递给这些列。

import pandas as pd
import numpy as np

data = pd.DataFrame()
data["date"] = ["a", "a", "a", "b"]
data["item_sell"] = ["z", "z", "a", "a"]
data["ct"] = 1
print(data)

输出:

  date item_sell  ct
0    a         z   1
1    a         z   1
2    a         a   1
3    b         a   1

使用 dateitem_sell 列进行分组。

import pandas as pd
import numpy as np

data = pd.DataFrame()
data["date"] = ["a", "a", "a", "b"]
data["item_sell"] = ["z", "z", "a", "a"]
data["ct"] = 1
output = pd.pivot_table(data, values="ct", index=["date", "item_sell"], aggfunc=np.sum)
print(output)

输出:

 				ct
date item_sell
a    a           1
     z           2
b    a           1

groupby() by 参数现在可以引用列名称或索引级别名称。

import pandas as pd
import numpy as np

arrays = [
    ["rar", "raz", "bal", "bac", "foa", "foa", "qus", "qus"],
    ["six", "seven", "six", "seven", "six", "seven", "six", "seven"],
]
index = pd.MultiIndex.from_arrays(arrays, names=["first", "second"])
data = pd.DataFrame({"C": [1, 1, 1, 1, 2, 2, 3, 3], "D": np.arange(8)}, index=index)
print(data)

输出:

              C  D
first second
rar   six     1  0
raz   seven   1  1
bal   six     1  2
bac   seven   1  3
foa   six     2  4
      seven   2  5
qus   six     3  6
      seven   3  7

secondC 分组,然后使用 sum 函数计算总和。

import pandas as pd
import numpy as np

arrays = [
    ["rar", "raz", "bal", "bac", "foa", "foa", "qus", "qus"],
    ["six", "seven", "six", "seven", "six", "seven", "six", "seven"],
]
index = pd.MultiIndex.from_arrays(arrays, names=["first", "second"])
data = pd.DataFrame({"C": [1, 1, 1, 1, 2, 2, 3, 3], "D": np.arange(8)}, index=index)
output = data.groupby(["second", "C"]).sum()
print(output)

输出:


在 Python Pandas 中对 CSV 文件数据使用 groupby() 函数

现在对 CSV 文件使用 groupby() 函数。要下载代码中使用的 CSV 文件,请单击此处([学生在考试中的表现 | Kaggle])。

使用的 CSV 文件是关于学生表现的。要根据 gender 对数据进行分组,请使用 groupby() 函数。

Python Pandas 库的 read_csv 函数用于从驱动器中读取文件。将文件存储在数据变量中。

import pandas as pd

data = pd.read_csv("/content/drive/MyDrive/CSV/StudentsPerformance.csv")
print(data)

输出:

应用 groupby() 函数。

import pandas as pd

data = pd.read_csv("StudentsPerformance.csv")
std = data.groupby("gender")
print(std.first())

让我们打印任何组中的值。为此,请使用团队的名称。

get_group 函数用于查找任何组中的条目。找出 female 组中包含的值。

import pandas as pd

data = pd.read_csv("StudentsPerformance.csv")
std = data.groupby("gender")
print(std.get_group("female"))

输出:

使用 groupby() 函数创建多个类别组。要拆分,请使用多个列。

import pandas as pd

data = pd.read_csv("StudentsPerformance.csv")
std_per = data.groupby(["gender", "lunch"])
print(std_per.first())

输出:

Groupby() 是一个具有多种变体的通用函数。它使得根据某些标准拆分 DataFrame 变得非常简单和高效。

上一篇:Pandas 通过 Groupby 应用变换

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Pandas 通过 Groupby 应用变换

发布时间:2024/04/23 浏览次数:180 分类:Python

本教程演示了 Pandas Python 中与 groupby 方法一起使用的 apply 和 transform 之间的区别。

Pandas Vlookup

发布时间:2024/04/23 浏览次数:83 分类:Python

本教程演示如何在 Python 中使用 Pandas 通过不同的技术合并两个不同的表。

Pandas 中的散点矩阵

发布时间:2024/04/23 浏览次数:105 分类:Python

本教程演示了如何使用 scatter_matrix 函数在 Pandas 中创建散点图。

Pandas 中的 GroupBy 应用

发布时间:2024/04/23 浏览次数:181 分类:Python

本文演示了什么是 GroupBy-Apply 行为以及如何在 Pandas 中按数据分组和应用函数。

如何从 Pandas 的日期时间列中提取月份和年份

发布时间:2024/04/23 浏览次数:124 分类:Python

我们可以分别使用 dt.year()和 dt.month()方法从 Datetime 列中提取出年和蛾。我们还可以使用 pandas.DatetimeIndex.month 以及 pandas.DatetimeIndex.year 和 strftime()方法提取年份和月份。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便