数据分析-Pandas如何统计数据概况

发布时间:2024年01月12日

数据分析-Pandas如何概况的获得统计数据

时间序列数据在数据分析建模中很常见,例如天气预报,空气状态监测,股票交易等金融场景。此处选择巴黎、伦敦欧洲城市空气质量监测 N O 2 NO_2 NO2?数据作为样例。

python数据分析-数据表读写到pandas

经典算法-遗传算法的python实现

经典算法-遗传算法的一个简单例子

大模型查询工具助手之股票免费查询接口

Falcon构建轻量级的REST API服务

决策引擎-利用Drools实现简单防火墙策略

Python技巧-终端屏幕打印光标和文字控制

某属性的聚合统计

比如求某列的平均值,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实战系列-简单聊聊LangChain

GPT实战系列-大模型为我所用之借用ChatGLM3构建查询助手

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(二)

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(一)

GPT实战系列-ChatGLM2模型的微调训练参数解读

GPT实战系列-如何用自己数据微调ChatGLM2模型训练

GPT实战系列-ChatGLM2部署Ubuntu+Cuda11+显存24G实战方案

GPT实战系列-Baichuan2本地化部署实战方案

GPT实战系列-Baichuan2等大模型的计算精度与量化

GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF

GPT实战系列-探究GPT等大模型的文本生成-CSDN博客

文章来源:https://blog.csdn.net/Alex_StarSky/article/details/135541499
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。