系列文章目录
Chapter 1:创建与探索DF、排序、子集化:Python数据分析——Pandas基础入门+代码(一)
Chapter 2:聚合函数,groupby,统计分析:Python数据分析——Pandas基础入门+代码(二)
Chapter 3:索引和切片:Python数据分析——Pandas基础入门+代码(三)
Chapter 4: 可视化与读写csv文件:Python数据分析——Pandas基础入门+代码(四)
Chapter 5:数据透视表:Python数据分析——Pandas基础入门+代码之数据透视表
文章目录
前言
这一篇主要讲的是:
聚合Agg、分组groupby以及“统计”
涉及到如下的methods:
- .agg()
- .drop_duplicates()
- .value_counts()
- .groupby()
一、如何利用pandas解决统计上的某些问题
这边列出来的是一些我们常用的描述性统计上的东西,其实可以直接describe(),就能直接知道每列的一个信息。至于怎么去用应该特别简单,举个例子。
Name | Description |
---|---|
均值 | mean() / np.mean() |
中位数 | np.median() |
最大值 | max() |
最小值 | min() |
累加 | .cumsum() |
累计最大 | .cummax() |
For example, 某个DataFrame前几行是这样的。
假如去计算每周的销售额weekly_sales的均值和中位数,代码如下
In [1]: print(sales['weekly_sales'].mean())
Out [1]: 23843.95014850566
In [2]: print(sales['weekly_sales'].median())
Out [2]: 12049.064999999999
二、如何使用pandas.DataFrame.agg() 聚合方法
.agg() 可以使得我们进行一个高效的聚合运算,我们可以自定函数放到里面,也可以使用其他包中的函数
代码示例如下,这是我们自定义的函数
# A custom IQR function
def iqr(column):
return column.quantile(0.75) - column.quantile(0.25)
然后,我们可以将其放入到agg()中进行运算,就能得到如下的结果
# Print IQR of the temperature_c column
In [1]: print(sales['temperature_c'].agg(iqr))
Out [1]: 16.583333333333336
接下来是2个值得注意的地方。
- 首先,如果我们需要对多列进行聚合,那么我们就像之前那篇说过的一样,需要在里面多打上一个中括号。
- 其次,