DataFrame.groupby函数

DataFrame.groupby函数 首页 / Pandas入门教程 / DataFrame.groupby函数

在Pandas中, groupby()函数使无涯教程可以通过在实际数据集上利用它们来重新排列数据。它的主要任务是将数据分成不同的组。这些组基于一些标准进行分类。可以从任何轴划分对象。

groupby - 语法

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

groupby - 数据分组

有多种方法可以将任何对象拆分为组,如下所示:

无涯教程网

  • obj.groupby("key")
  • obj.groupby(['key1','key2'])
  • obj.groupby(key,axis =  1)

还可以向每个子集添加一些函数。可以对应用的函数执行以下操作:

  • Aggregation           -    聚合值
  • Transformation   -   转换数据。
  • Filtration                -   过滤数据。

Aggregation(聚合值)

它被定义为为每个组返回单个聚合值的函数。创建 groupby 对象时,可以对分组的数据执行多种汇总操作。

# import the pandas library
import pandas as pd
import numpy as np
data = {'Name': ['Parker', 'Learnfk', 'John', 'William'],
   'Percentage': [82, 98, 91, 87],
   'Course': ['B.Sc','B.Ed','M.Phill','BA']}
df = pd.DataFrame(data)

grouped = df.groupby('Course')
print(grouped['Percentage'].agg(np.mean))

输出

Course
B.Ed        98
B.Sc        82
BA          87
M.Phill     91
Name: Percentage, dtype: int64

Transformation(转换数据)

这是对组或列执行的操作,它执行某些特定于组的计算,并返回一个索引,该对象的索引大小与组大小相同。

示例

# import the pandas library
import pandas as pd
import numpy as np

data = {'Name': ['Parker', 'Learnfk', 'John', 'William'],
   'Percentage': [82, 98, 91, 87],
   'Course': ['B.Sc','B.Ed','M.Phill','BA']}
df = pd.DataFrame(data)

grouped = df.groupby('Course')
Percentage = lambda x: (x - x.mean())/x.std()*10
print(grouped.transform(Percentage))

输出

    Percentage
0       NaN
1       NaN
2       NaN
3       NaN

Filtration(过滤数据)

filter()函数通过定义一些条件来过滤数据并返回数据的子集。

# import the pandas library
import pandas as pd
import numpy as np

data = {'Name': ['Parker', 'Learnfk', 'John', 'William'],
   'Percentage': [82, 98, 91, 87],
   'Course': ['B.Sc','B.Ed','M.Phill','BA']}
df = pd.DataFrame(data)

grouped = df.groupby('Course')
print (df.groupby('Course').filter(lambda x: len(x) >= 1))

输出

     Name      Percentage    Course
0   Parker      82            B.Sc
1   Learnfk       98            B.Ed
2   John        91            M.Phill
3   William     87            BA

groupby - 参数

  • by     -  映射(mapping),函数(function),str或可迭代(iterable)
  • axis  -  {0或'index',1或'columns'},默认值0
  • level - int,级别名称或此类的序列,默认值为None。
  • as_index          -  布尔值,默认为True 它返回带有组标签的对象作为聚合输出的索引。
  • sort                    -  布尔型,默认为True 用于对组键进行排序。关闭此函数可获得更好的性能。
  • group_keys    -   布尔值,默认值为True
  • observed         -   布尔值,默认值为False。
  • **kwargs         -   这是一个可选参数,仅接受传递给groupby的关键字参数" mutated"。

groupby - 返回值

它返回 DataFrameGroupBy SeriesGroupBy 。返回值取决于由有关组的信息组成的调用对象。

示例

import pandas as pd
info = pd.DataFrame({'Name': ['Parker', 'Learnfk','John', 'William'],'Percentage': [92., 98., 89., 86.]})
info

输出

Pandas Groupby

示例

# import the pandas library
import pandas as pd

data = {'Name': ['Parker', 'Learnfk', 'John', 'William'],
   'Percentage': [82, 98, 91, 87],}
info = pd.DataFrame(data)

print (info)

输出

    Name     Percentage
0   Parker     82
1   Learnfk      98
2   John       91
3   William    87

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

AI技术内参 -〔洪亮劼〕

人工智能基础课 -〔王天一〕

趣谈Linux操作系统 -〔刘超〕

Java业务开发常见错误100例 -〔朱晔〕

手机摄影 -〔@随你们去〕

Spark核心原理与实战 -〔王磊〕

程序员的个人财富课 -〔王喆〕

手把手带你搭建推荐系统 -〔黄鸿波〕

云时代的JVM原理与实战 -〔康杨〕

好记忆不如烂笔头。留下您的足迹吧 :)