人生苦短,快学Python!
前几天看到一篇文章,给大家列出了Pandas的常用100函数,并将这100个函数分成了6类:统计汇总函数
、数据清洗函数
、数据筛选
、绘图与元素级运算函数
、时间序列函数和其他函数
。
但是只是单纯的罗列,并没有给出使用说明,相信很多朋友看了还是不会。
因此,今天这个文章,我将会带大家用 "案例教学" 的方式,学会这100个Pandas函数。
限于篇幅,为了方便大家学习,我这里先分类教学。今天为大家讲述统计汇总函数
中的26个函数。
注明: 由于实际问题中,表格数据每一行代表一个样本,每一列代表一个字段,一般情况下对行操作的意义不大,主要是对每个不同列进行操作。因此,下面我们仅讲述对列的操作。
为了讲述这些函数,我们先构造一些数据源,方便我们用于操作。
import numpy as np
import pandas as pd
data = [[1, 2, np.nan], [2, np.nan, 3], [7, 8, 9], [3, 4, 5]]
date_range = pd.date_range(start="20180701", periods=4)
df1 = pd.DataFrame(data=data, index=date_range,
columns=['a', 'b', 'c'])
df1
df2 = pd.DataFrame({'Q':['LI','ZHANG','ZHANG','LI','WANG'],
'A' : [1,1,1,2,2],
'B' : [1,-1,0,1,2],
'C' : [3,4,5,6,7]})
df2
df3 = pd.DataFrame({"id":[f"00{i}" for i in range(1,8)],
"score":[2,3,4,5,6,7,8]})
df3
df4 = pd.DataFrame({"姓名":["张三","李四","王五","赵六","沈七"],
"语文":[85,85,85,95,90],
"数学":[90,65,75,80,55],
"外语":[55,50,40,55,40]})
df4
min():计算最小值;max():计算最大值;
sum():求和;
mean():求均值;
count():计数(统计非缺失元素的个数);
size:计数(统计所有元素的个数);
median():计算中位数;
var():计算方差;
std():计算标准差;
quantile():计算任意分位数;
mode():计算众数;
describe():描述性统计(一次性返回多个统计结果);
groupby():分组;aggregate():聚合运算(可以自定义统计函数);
上面已经很清楚为大家展示了,分组后的数据形式。其实一旦使用groupby后,系统会自动为你分组,然后我们就可以分别对分组后的数据,进行操作,比如下面这个案例。
argmin():寻找最小值所在位置;argmax():寻找最大值所在位置;
注意:这两个函数,用于函数删选,很有用。
any():返回是否所有元素都为真;all():返回是否至少一个元素为真;
上述代码的意思:判断班级各科成绩是否都在60分以上。
value_counts():频次统计;
cumsum():运算累计和;cumprod():运算累计积;
pct_change():运算比率(后一个元素与前一个元素的比率);
运算规律是:(后一个值 - 前一个值) / 前一个值;