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
技术,我们可以根据我们的需求以及在需要时并基于一个或多个条件有效地过滤数据,然后将某些函数或聚合应用于结果。
相关文章
Pandas 中的 GroupBy 和聚合多列数据
发布时间:2024/04/23 浏览次数:189 分类:Python
-
本教程演示了基于多列对数据进行分组,并将聚合方法应用于 Python 中 Pandas 数据框中的分组数据。
在 Pandas 中将 Timedelta 转换为 Int
发布时间:2024/04/23 浏览次数:191 分类:Python
-
可以使用 Pandas 中的 dt 属性将 timedelta 转换为整数。
如何从 Pandas 的日期时间列中提取月份和年份
发布时间:2024/04/23 浏览次数:124 分类:Python
-
我们可以分别使用 dt.year()和 dt.month()方法从 Datetime 列中提取出年和蛾。我们还可以使用 pandas.DatetimeIndex.month 以及 pandas.DatetimeIndex.year 和 strftime()方法提取年份和月份。
如何检查 NaN 是否存在于 Pandas DataFrame 中
发布时间:2024/04/23 浏览次数:188 分类:Python
-
我们可以使用 isnull()和 isna()方法检查 Pandas DataFrame 中是否存在 NaN。
DataFrame 获取给定列的第一行
发布时间:2024/04/22 浏览次数:51 分类:Python
-
本教程介绍了如何在 Pandas DataFrame 中使用 Series.loc()和 Series.iloc()方法获取给定列的第一行。
如何基于 Pandas 中的给定条件创建 DataFrame 列
发布时间:2024/04/22 浏览次数:147 分类:Python
-
我们可以使用列表推导技术,numpy 方法,apply()方法和 map()方法对 Pandas 中的给定条件创建 DataFrame 列。