数据分析-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博客

相关推荐
笨鸟先飞,勤能补拙2 小时前
AI 赋能网络安全:技术全景、成熟度评估与实战案例
人工智能·python·安全·web安全·网络安全·sqlite·github
长和信泰光伏储能3 小时前
京津冀光伏发电:绿色能源的未来之路
python·能源
江畔柳前堤3 小时前
信号的本质——从模拟波形到AI中的数据张量
人工智能·深度学习·机器学习·计算机视觉·数据挖掘·语音识别
浦信仿真大讲堂3 小时前
从重复操作到自动化闭环:如何让 CST 与 Python 真正协同起来
python·自动化·cst·仿真软件·达索软件
Gu Gu Study4 小时前
ScoutLoop开放域深度研究引擎(agent的初步设计想法)
人工智能·python
卷无止境4 小时前
写代码这件事,到底该讲究点什么?
后端·python
卷无止境5 小时前
循环复杂度到底在算什么,Python 代码怎么才能写得让人一看就懂
后端·python
lpfasd1235 小时前
MediaCrawler 项目深度分析
chrome·python·chrome devtools
江畔柳前堤5 小时前
系统的本质——从LTI系统到神经网络
人工智能·深度学习·神经网络·机器学习·计算机视觉·数据挖掘·语音识别
Dxy12393102165 小时前
Python项目打包成EXE完整教程(PyInstaller实战避坑)
开发语言·python