数据分析-Pandas数据的直方图探查

数据分析-Pandas数据的直方图探查

数据分析和处理中,难免会遇到各种数据,那么数据呈现怎样的规律呢?不管金融数据,风控数据,营销数据等等,莫不如此。如何通过图示展示数据的规律?

数据表,时间序列数据在数据分析建模中很常见,例如天气预报,空气状态监测,股票交易等金融场景。数据分析过程中重新调整,重塑数据表是很重要的技巧,此处选择Titanic数据,以及巴黎、伦敦欧洲城市空气质量监测 N O 2 NO_2 NO2数据作为样例。

数据分析

数据分析-Pandas如何转换产生新列

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

数据分析-Pandas如何轻松处理时间序列数据

数据分析-Pandas如何选择数据子集

数据分析-Pandas如何重塑数据表-CSDN博客

经典算法

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

经典算法-模拟退火算法的python实现

经典算法-粒子群算法的python实现-CSDN博客

本文用到的样例数据:

Titanic数据

空气质量监测 N O 2 NO_2 NO2数据

样例代码:

源代码参考 Pandas如何重塑数据表

源代码参考 python数据分析-数据表读写到pandas

导入关键模块

python 复制代码
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

plt.close("all")

很多时候数据的比例总和能否为1,有可能不成立,比如它们如果是不同的属性,那是没有办法的。但是又需要探查哪个属性的出行频度,比例关系,这时候可以试试直方图。它是不同数值的出现频度,也就是计数,或者计数的比例关系。

探究数据的数值频度关系

直方图在图像处理中很常见,查看像素的亮度数值,如何把数值的分布展示呢?比如,想知道一幅图像的亮度的数值多少和比例。

该例使用随机生成数据来举例。

python 复制代码
np.random.seed(36)

df4 = pd.DataFrame(
    {
        "a": np.random.randn(1000) + 1,
        "b": np.random.randn(1000),
        "c": np.random.randn(1000) - 1,
    },
    columns=["a", "b", "c"],
)

plt.figure();
df4.plot.hist(alpha=0.5);

多组直方图堆叠关系

各列数值的和是统计对象,但是各列其实是分类的分组,例如医学里面的常见药物效果对照,一组是服药,一组是安慰剂,想查看它们之间的关系,需要在一幅图展示,怎么办?

当然,只需要设定参数 stacked=True,此处为了更多细节,设置了bins参数

python 复制代码
plt.figure();

df4.plot.hist(stacked=True, bins=20);

累积直方图

累积直方图就是小于该数值的数量都累加,最后的数值为总量,如果是比例关系的话,就是1.0。

只要设置 cumulative参数就行,当然,如果需要躺平,也可以设置方向参数orientation。

python 复制代码
plt.figure();

df4["a"].plot.hist( cumulative=True);

plt.figure();

df4["a"].plot.hist(orientation="horizontal", cumulative=True);


多列直方图

python 复制代码
df4 = pd.DataFrame(
    {
        "a": np.random.randn(1000) + 1,
        "b": np.random.randn(1000),
        "c": np.random.randn(1000) - 1,
        "d": np.random.randn(1000) + 2,
    },
    columns=["a", "b", "c", "d"],
)

df4.diff().hist(color="k", alpha=0.5, bins=50);

分组直方图

data = pd.Series(np.random.randn(1000))
data.hist(by=np.random.randint(0, 4, 1000), alpha=0.5, bins=20, figsize=(6, 4));
data = pd.DataFrame(
    {
        "a": np.random.choice(["x", "y", "z"], 1000),
        "b": np.random.choice(["e", "f", "g"], 1000),
        "c": np.random.randn(1000),
        "d": np.random.randn(1000) - 1,
    },
)
data.plot.hist(by=["a", "b"], alpha=0.5, bins=20, figsize=(10, 10));

以上代码只是一个简单示例,示例代码中的表达式可以根据实际问题进行修改。

后面介绍下其他的展示形式。

python 复制代码
df.plot.area     df.plot.barh     df.plot.density  df.plot.hist     df.plot.line 
df.plot.bar      df.plot.box      df.plot.hexbin   df.plot.kde      df.plot.pie
df.plot.scatter

觉得有用 收藏 收藏 收藏

点个赞 点个赞 点个赞

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博客

相关推荐
cuber膜拜1 小时前
jupyter使用 Token 认证登录
ide·python·jupyter
张登杰踩2 小时前
pytorch2.5实例教程
pytorch·python
codists2 小时前
《CPython Internals》阅读笔记:p353-p355
python
Change is good2 小时前
selenium定位元素的方法
python·xpath定位
Change is good2 小时前
selenium clear()方法清除文本框内容
python·selenium·测试工具
大懒猫软件7 小时前
如何运用python爬虫获取大型资讯类网站文章,并同时导出pdf或word格式文本?
python·深度学习·自然语言处理·网络爬虫
XianxinMao8 小时前
RLHF技术应用探析:从安全任务到高阶能力提升
人工智能·python·算法
查理零世9 小时前
【算法】经典博弈论问题——巴什博弈 python
开发语言·python·算法
汤姆和佩琦10 小时前
2025-1-21-sklearn学习(43) 使用 scikit-learn 介绍机器学习 楼上阑干横斗柄,寒露人远鸡相应。
人工智能·python·学习·机器学习·scikit-learn·sklearn
HyperAI超神经10 小时前
【TVM教程】为 ARM CPU 自动调优卷积网络
arm开发·人工智能·python·深度学习·机器学习·tvm·编译器