天天看点

import pandas as pd 报错_pandas数据分析核心技能-分组统计计算pandas.DataFrame.groupby简单的例子:

import pandas as pd 报错_pandas数据分析核心技能-分组统计计算pandas.DataFrame.groupby简单的例子:

对数据集进行分组并对各组应用一个函数(无论是聚合还是转换),这是数据分析工作中的重要环节。在将数据集准备好之后,通常的任务就是计算分组统计或生成透视表。pandas提供了一个灵活高效的gruopby功能,它使你能以一种自然的方式对数据集进行切片、切块、摘要等操作。

关系型数据库和SQL(Structured Query Language,结构化查询语言)能够如此流行的原因之一就是其能够方便地对数据进行连接、过滤、转换和聚合。但是,像SQL这样的查询语言所能执行的分组运算的种类很有限。在本章中你将会看到,由于Python和pandas强大的表达能力,我们可以执行复杂得多的分组运算(利用任何可以接受pandas对象或NumPy数组的函数)

本文包括:

  • 根据一个或多个键(可以是函数、数组或DataFrame列名)拆分pandas对象。
  • 计算分组摘要统计,如计数、平均值、标准差,或用户自定义函数。
  • 对DataFrame的列应用各种各样的函数。

pandas.DataFrame.groupby

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

by : mapping, function, label, or list of labels

用于确定groupby的组。 如果by是一个函数,则调用对象索引的每个值。 如果传递了dict或Series,则将使用Series或dict VALUES来确定组(系列的值首先对齐;请参阅.align()方法)。 如果传递了ndarray,则使用这些值来确定组。 标签或标签列表可以通过self中的列传递给组。 请注意,元组被解释为(单个)键。

axis : {0 or ‘index’, 1 or ‘columns’}, default 0

按照行或列分割

level : int, level name, or sequence of such, default None

如果轴是MultiIndex(分层),则按特定级别或级别分组。

as_index : bool, default True

对于聚合输出,返回以组标签作为索引的对象。 仅与DataFrame输入相关。 as_index = False实际上是“SQL风格”的分组输出。

sort : bool, default True

对组键进行排序。 关闭它可以获得更好的性能。 请注意,这不会影响每组内观察的顺序。 Groupby保留每个组中的行顺序。

group_keys : bool, default True

调用apply时,将组键添加到索引以标识片段。

squeeze : bool, default False

如果可能,减少返回类型的维度,否则返回一致类型。

observed : bool, default False

**kwargs

Optional, only accepts keyword argument ‘mutated’ and is passed to groupby.

import pandas as pd 报错_pandas数据分析核心技能-分组统计计算pandas.DataFrame.groupby简单的例子:

分组键可以有多种形式,且类型不必相同:

·列表或数组,其长度与待分组的轴一样。

·表示DataFrame某个列名的值。

·字典或Series,给出待分组轴上的值与分组名之间的对应关系。

·函数,用于处理轴索引或索引中的各个标签。

注意,后三种都只是快捷方式而已,其最终目的仍然是产生一组用于拆分对象的值。

简单的例子:

df = pd.DataFrame({'Animal': ['Falcon', 'Falcon','Parrot', 'Parrot'],'Max Speed': [380., 370., 24., 26.]})df
           
import pandas as pd 报错_pandas数据分析核心技能-分组统计计算pandas.DataFrame.groupby简单的例子:
df.groupby(['Animal']).mean()
           
import pandas as pd 报错_pandas数据分析核心技能-分组统计计算pandas.DataFrame.groupby简单的例子:

导入今天的实例:

data=pd.read_csv("hflights.csv")data
           
import pandas as pd 报错_pandas数据分析核心技能-分组统计计算pandas.DataFrame.groupby简单的例子:

先按照一个键来分组:

data.groupby("DayofMonth").apply(np.sum)
           
import pandas as pd 报错_pandas数据分析核心技能-分组统计计算pandas.DataFrame.groupby简单的例子:

显然这不是我们想要的,通常我们会对某一列设置函数:

data.groupby("DayofMonth")["TaxiOut"].apply(np.sum)
           
import pandas as pd 报错_pandas数据分析核心技能-分组统计计算pandas.DataFrame.groupby简单的例子:

按照多个键来分割:

data.groupby(["Year
           

继续阅读