时间序列数据在数据分析建模中很常见,例如天气预报,空气状态监测,股票交易等金融场景。此处选择巴黎、伦敦欧洲城市空气质量监测 N O 2 NO_2 NO2?数据作为样例。
比如求某列的平均值,Titanic 数据中,想知道乘客的平均年龄多少:
In [1]: titanic["Age"].mean()
Out[1]: 29.69911764705882
比如求好几个属性的平均值,可以同时应用到多列的数值处理中,计算过程中会把缺失的数据排除掉,生成的结果默认按行表达。选择 年龄和费用计算其的平均值。
In [2]: titanic[["Age", "Fare"]].median()
Out[2]:
Age 28.0000
Fare 14.4542
dtype: float64
事实上,describe 函数就同时计算了多列的多种聚合函数:
In [3]: titanic[["Age", "Fare"]].describe()
Out[3]:
Age Fare
count 714.000000 891.000000
mean 29.699118 32.204208
std 14.526497 49.693429
min 0.420000 0.000000
25% 20.125000 7.910400
50% 28.000000 14.454200
75% 38.000000 31.000000
max 80.000000 512.329200
当然,除了默认的统计函数以外,也可以自行选择聚合函数,并且不同属性还可以不同的聚合组合。以下是一个例子:
In [4]: titanic.agg(
...: {
...: "Age": ["min", "max", "median", "skew"],
...: "Fare": ["min", "max", "median", "mean"],
...: }
...: )
...:
Out[4]:
Age Fare
min 0.420000 0.000000
max 80.000000 512.329200
median 28.000000 14.454200
skew 0.389108 NaN
mean NaN 32.204208
聚合统计,还可以通过分组的方式实现
通常,按性别的男女分组统计是很常见的思路。男性平均年龄、身高,女性平均年龄、身高等。
In [5]: titanic[["Sex", "Age"]].groupby("Sex").mean()
Out[5]:
Age
Sex
female 27.915709
male 30.726645
更广泛的应用,把数值类的属性列都按分组进行聚合处理,例如:
In [6]: titanic.groupby("Sex").mean(numeric_only=True)
Out[6]:
PassengerId Survived Pclass ... SibSp Parch Fare
Sex ...
female 431.028662 0.742038 2.159236 ... 0.694268 0.649682 44.479818
male 454.147314 0.188908 2.389948 ... 0.429809 0.235702 25.523893
[2 rows x 7 columns]
另外,还可以组合交叉进行分组,然后在做统计处理,如:
In [7]: titanic.groupby(["Sex", "Pclass"])["Fare"].mean()
Out[7]:
Sex Pclass
female 1 106.125798
2 21.970121
3 16.118810
male 1 67.226127
2 19.741782
3 12.661633
Name: Fare, dtype: float64
有时候也需要数一数,每个分组里,有多少数量。不同舱等级的乘客数量多少?
In [8]: titanic["Pclass"].value_counts()
Out[8]:
Pclass
3 491
1 216
2 184
Name: count, dtype: int64
也可这样,先分类,再取出某列,然后统计:
In [13]: titanic.groupby("Pclass")["Pclass"].count()
Out[13]:
Pclass
1 216
2 184
3 491
Name: Pclass, dtype: int64
以上代码只是一个简单示例,示例代码中的表达式可以根据实际问题进行修改。
觉得有用 收藏 收藏 收藏
点个赞 点个赞 点个赞
End
GPT专栏文章:
GPT实战系列-ChatGLM3本地部署CUDA11+1080Ti+显卡24G实战方案
GPT实战系列-LangChain + ChatGLM3构建天气查询助手
GPT实战系列-大模型为我所用之借用ChatGLM3构建查询助手
GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(二)
GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(一)
GPT实战系列-ChatGLM2部署Ubuntu+Cuda11+显存24G实战方案