数据分析-Pandas数据探查初步:离散点图

本文介绍了如何使用Pandas对数据进行初步探查,包括如何通过离散点图展示数据规律,如序列数据的散点图绘制,分组数据的对比以及使用颜色和大小表示不同变量。以Titanic数据和空气质量监测数据为例,展示了如何使用DataFrame.plot.scatter()方法进行可视化操作。
摘要由CSDN通过智能技术生成

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

导入关键模块

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

plt.close("all")

有时候关系还不明朗,直接画线图又展示不清楚,怎么办?其实只需要知道x和y的关系,x坐标多少,y坐标多少,先画图看看多个点之间是怎样的关系——散点图。

散点图可以使用 DataFrame.plot.scatter() 方法

探究序列数据的离散规律

当使用的是序列数据时,如何把序列数据展示为点状关系呢?

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

df = pd.DataFrame(np.random.rand(50, 4), columns=["a", "b", "c", "d"])

df["species"] = pd.Categorical(
    ["setosa"] * 20 + ["versicolor"] * 20 + ["virginica"] * 10
)


df.plot.scatter(x="a", y="b");

在这里插入图片描述

探究分组离散数据的对比

当遇到多个分组的数据,例如医学里面的常见药物效果对照,一组是服药,一组是安慰剂,想查看它们之间的关系,需要在一幅图展示,怎么办?

可以重复调用plot函数,只要指定目标的ax即可,另外,为了一目了然,也最好使用颜色 color和标签 label进行区分对比。

这样是可以一张图同时画出多列数据点的集中展示,需要比较数据:

ax = df.plot.scatter(x="a", y="b", color="DarkBlue", label="Group 1")

df.plot.scatter(x="c", y="d", color="DarkRed", label="Group 2", ax=ax);

在这里插入图片描述

用颜色探究每个离散点的数据关系

有时候,Boss突发奇想,想给每个点不同的颜色呢?如何展示?

当然可以,通过 c 参数,通过其中一列作为上色值,可以给每个点不同的颜色值。

df.plot.scatter(x="a", y="b", c="c", s=50);

在这里插入图片描述

你还可以使用分类方法指定颜色,还是用c来指定列,cmap指定调色板。

例如这里前20的值为 setosa,中间20的值为versicolor,最后10的值为virginica。

df["species"] = pd.Categorical(
    ["setosa"] * 20 + ["versicolor"] * 20 + ["virginica"] * 10
)
df.plot.scatter(x="a", y="b", c="species", cmap="viridis", s=50);

在这里插入图片描述

用点大小探究每个离散点的数据关系

有时候,Boss突发奇想,想给每个点不同的大小呢?某方面数值大的,直径就大,某方面数值小的,直径就小,该如何展示?

当然可以,不就是看气泡图么,通过 s 参数,通过其中一列作为气泡的直径,可以给每个点不同的直径值。

df.plot.scatter(x="a", y="b", c="species", cmap="viridis", s=df["c"] * 200);

在这里插入图片描述

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alex_StarSky

你的鼓励是创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值