pandas 中的 groupby 应用
本教程旨在探索 pandas 中的 groupby apply
概念。pandas 在 python 中用作高级数据分析工具或包扩展。
当我们在 sql 表、电子表格或异构列中有数据时,强烈建议使用 pandas。数据可以有序也可以无序,还支持时序数据。
pandas groupby-apply 行为
让我们尝试了解如何按数据分组,然后应用特定函数来聚合或计算数据的值。groupby
帮助我们将某些数据条目组合或汇集在一起。
groupby
帮助我们跟踪数据中的不同数据入口点。让我们看看这个方法的实际效果。
我们将创建一个虚拟 dataframe 来使用。在这里,我们创建了一个 dataframe dframe
和几行。
from pandas import *
our_data = {"mylabel": series(["p", "r", "e", "e", "t", "s", "a", "p", "r", "e", "t"])}
dframe = dataframe(our_data)
print(dframe) # print output
输出:
mylabel
0 p
1 r
2 e
3 e
4 t
5 s
6 a
7 p
8 r
9 e
10 t
我们的 dataframe 带有标签 mylabel
,并设置了不同的数据点和索引。每个字母都被分配了一个特定的索引。
这些标签是我们将学习如何分组和应用某些聚合函数的东西。
在 pandas 中使用 groupby()
函数
我们可以借助以下代码了解如何对数据进行分组。正如我们所看到的,我们正在尝试对每个字母进行分组并计算它们的出现次数。
from pandas import *
our_data = {"mylabel": series(["p", "r", "e", "e", "t", "s", "a", "p", "r", "e", "t"])}
dframe = dataframe(our_data)
def perc(value, total):
return value / float(total)
def gcou(values):
return len(values)
grpd_count = dframe.groupby("mylabel").mylabel.agg(gcou)
print(grpd_count) # prints output
输出:
mylabel
a 1
e 3
p 2
r 2
s 1
t 2
name: mylabel, dtype: int64
我们需要使用我们创建的名为 grpd_count
的新 dataframe 来应用任何数学公式。在这里,我们计算了可用的每个字母表的数量。
在 pandas 中加入 groupby()
和 apply()
函数
让我们操作 dataframe grpd_count
以将每个字母的总计数除以所有计数的总和。这个想法通常用于衡量一个实体在 0 到 1
范围内的权重。
接近 1 的值具有较高的权重,而接近于 0 的值具有较低的权重,这意味着该特定字母的出现次数少于其他字母。
代码示例:
from pandas import *
our_data = {"mylabel": series(["p", "r", "e", "e", "t", "s", "a", "p", "r", "e", "t"])}
dframe = dataframe(our_data)
def perc(value, total):
return value / float(total)
def gcou(values):
return len(values)
grpd_count = dframe.groupby("mylabel").mylabel.agg(gcou)
mydata = grpd_count.apply(perc, total=dframe.mylabel.count())
print(mydata) # prints output
输出:
mylabel
a 0.090909
e 0.272727
p 0.181818
r 0.181818
s 0.090909
t 0.181818
name: mylabel, dtype: float64
在 pandas 中对数据进行分组后,我们已经成功执行了一项操作。
因此,借助 pandas 中的 grouping by
技术,我们可以根据我们的需求以及在需要时并基于一个或多个条件有效地过滤数据,然后将某些函数或聚合应用于结果。
转载请发邮件至 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 系列日期时间转换为字符串