pandas 中的 groupby 索引列
本教程介绍 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:date
和 item sell
。groupby
日期和项目销售并获取用户的逐项计数。
首先,我们需要导入必要的库 pandas
和 numpy
,创建三个列 ct
、date
和 item_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
使用 date
和 item_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
按 second
和 c
分组,然后使用 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 变得非常简单和高效。
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
pandas dataframe dataframe.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:python
-
dataframe.shift() 函数是将 dataframe 的索引按指定的周期数进行移位。
python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:python
-
python pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:python
-
pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 dataframe 中。
pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:python
-
本教程介绍了如何在 pandas 中使用 dataframe.merge()方法合并两个 dataframes。
pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:python
-
本教程介绍了如何使用 python 中的 loc 和 iloc 从 pandas dataframe 中过滤数据。
在 python 中将 pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:python
-
了解如何在 python 中将 pandas 系列日期时间转换为字符串