数据分析-Pandas的核心操作groupby简介
数据分析和处理中,难免会遇到各种数据,那么数据呈现怎样的规律呢?不管金融数据,风控数据,营销数据等等,莫不如此。如何通过图示展示数据的规律?
数据表,时间序列数据在数据分析建模中很常见,例如天气预报,空气状态监测,股票交易等金融场景。数据分析过程中重新调整,重塑数据表是很重要的技巧,此处选择Titanic数据,以及巴黎、伦敦欧洲城市空气质量监测 N O 2 NO_2 NO2数据作为样例。
数据分析
实验数据分析处理,股票序列,时间序列,信号序列,有时候表格的数据需要进行分类,拆分,分组处理,,针对每组进行分类处理,处理后的结果还想汇总起来。这是pandas很常见的使用场景,pandas如何通过groupby,分步骤进行数据分类、处理、汇总呢?
Group by的意义:split-apply-combine
通过“group by”,是包含以下一项或多项的步骤:
- 拆分:根据某些条件将数据拆分为几组。
- 应用:对每个组进行独立的函数操作。
- 合并:将结果合并到一定数据结构中。
其中,拆分步骤的操作就是字面的意思,最直接直白的。
而在应用步骤中,可能希望执行下列操作之一:
-
聚合:为每个分组计算汇总统计量,统计数据。例如:
- 计算组总和或均值。
- 计算组大小/计数。
-
转换:执行一些特定组的计算,并返回一个 like-indexed 对象。例如:
- 标准化操作分组的数据 (zscore)。
- 填充NA值,使用每个组派生计算的值填充组内的 NA。
-
过滤:筛掉一些分组,根据组为单位计算,筛选条件计算结果为 True 或 False。例如:
- 丢弃占比低,少数成员的组数据。
- 根据总和或平均值来筛选分组。
其中许多操作是在 GroupBy 对象上定义的,例如聚合 API、窗口 API 和重采样 API。
也有有这样可能情况,例如给定的操作并没有落入到任何一个分类数据中,或者只是一些分组合并。
在这些情形下,最合适的可能就是使用GroupBy计算。这样的计算会检查应用计算步骤后的结果,并且尽量把这些分组结果合并为一个最后结果,当如果这些并不适合上述的类型数据。
使用内置 GroupBy ,把一个操作拆分为多个步骤,比用户定义的 Python 函数更有效。
当然,GroupBy 这个名字,对于使用过的SQL语言人来说,应该很熟悉,您会常常编写如下代码:
SELECT Column1, Column2, mean(Column3), sum(Column4)
FROM SomeTable
GROUP BY Column1, Column2
我们的目标是通过pandas,让这些操作更加自然,容易表达。后续我们将讨论各个方面的 GroupBy 的功能,同时提供一些样例。
Splitting拆分
分组的抽象定义是提供映射规则把数据映射到分组,标签。创建 GroupBy 对象,您可以执行以下操作:
In [1]: speeds = pd.DataFrame(
...: [
...: ("bird", "Falconiformes", 389.0),
...: ("bird", "Psittaciformes", 24.0),
...: (