Python数据分析II

news2025/4/9 7:26:37

目录

1.HS-排序返回前n行

2.HS-相关性

3.缺失值处理

4.时间

5.时间索引

6.分组聚合

7.离散分箱

8.Concat关联(索引关联)

9.Merge关联(字段关联)

10.join合并(左字段,右索引)

11.行列转置及透视表

12.数据可视化-面向过程

13.数据可视化-面向对象

14.快速生成柱状图

15.快速生成散点图

16.中文显示

17.众图表归类

箱线图数值展示如下: 

数据较大,生成超级饼图如下: 


        一图胜千言,人是一个视觉敏感的动物,大多数人对数字无法在较短的时间内找到规律和业务意义,可视化就势在必行。视觉化效应 (Visual effects) 是指人类认知过程中,只要将非视觉性信息转化成视觉信息,可以大大增强海马体的记忆与前额叶皮质的思维反应速度。

        Pandas的数据可视化依赖于matplotlib模块的pyplot类,在安装Pandas时会自动安装Matplotlib,Matplotlib是一个专门的绘图可视化包,可以对图形做细节控制,绘制出出版质量级别的图形,通过Matplotlib,可以简单地绘制出常用的统计图形。

        除了Matplotlib以外还有很多用于可视化的包,比如Seaborn等。

=========================================================================

1.HS-排序返回前n行
# 按指定列降序排序并输出前n行
表名.nlargest(n,'指定列')
# 按指定列升序排序并输出前n行
表名.nsmallest(n,'指定列')
# 一二级排序(False降序/True升序)
表名.sort_values(by=['一级排序列','二级排序列'],ascending=[False,True])
2.HS-相关性
# 计算数值列之间的相关性
表名.corr()
# 正数是正相关,负数是负相关
# 0-0.3是弱相关,0.3-0.7稳定,0.7-1是强相关
# 面积和价格呈现正相关, 面积越大, 价格越贵
3.缺失值处理
# NAN 即缺失值 特殊浮点数 啥也不是 也都不想等
# 改成False后缺失值则不显示
pd.read csv('c:../city_day.csv',keep default_na=False)
# 为空则True/False
表名.isnull()/notnull()
# 将缺失值用指定数据填充
表名.fillna(数据)
# 将平均值填充缺失值并替换旧列并select*
名称 = 表名['列名'].mean()
表名['列名']=表名['列名'].fillna(名称)
# 删除缺失值
表名.dropna().shape
# 一整行全空的情况下才会删掉该行
表名.dropna(how='all').shape
# 指定某两列为空的话删除该行
表名.dropna(subdet=['列1','列2'],how='all').shape
4.时间
from datetime import datetime
# 显示当前时间
datetime.now()
​
# 将其他格式的时间列转化为时间格式的时间列
表名['Date']= pd.to_datetime(表名['Date'])
表名.info()
​
# 子格式(年月日季度)
print(表名['Date'].dt.year)
print(表名['Date'].dt.month)
print(表名['Date'].dt.day)
表名['Date'].dt.quarter
​
# 返回星期几,从日开始计数,0对应星期一
表名['Date'].dt.dayofweek
​
# Timestamp 时间戳
名字 = pd.to_datetime('2024-06-06 14:48:50')
名字.year
​
# 每个时间和最小时间的时间差
表名['Date']-表名['Date'].min()
s_.dt.days # int型无单位
5.时间索引
# 将时间列干成索引
表名.set_index('列名',inplace=True)
# 将索引再干回去
表名.reset_index(inplace=True)
# 筛选为某时间的数据
表名.loc['2018-01-01']
# 筛选时间FW指定
表名.loc['2018-02-01 00:00:00':'2018-02-02 23:59:59']
6.分组聚合
# 按某列分组后求平均值
表名.groupby(by=['分组列名']).mean()
# 按某列分组后对指定列求平均值
print(表名.groupby(by=['分组列名'])['操作列'].mean())
# 按某列分组后对指定列求平均值,并显示字段名
print(表名.groupby(by=['分组列名'])[['操作列']].mean())
# 按某列分组后对指定两列求平均值
print(表名.groupby(by=['分组列名'])[['操作列1','操作列2']].mean())
# 按某列分组后对指定两列求平均值和最大值
print(表名.groupby(by=['分组列名'])[['操作列1','操作列2']].agg(['mean','max']))
# 按某列分组后对列1求平均值和对列2求最大值
print(表名.groupby(by=['分组列名']).agg({'操作列1':'mean','操作列2':'max'}))
# 按某两列二级分组后对列1求平均值和对列2求最大值
print(表名.groupby(by=['分组列1','分组列2']).agg({'操作列1':'mean','操作列2':'max'}))
7.离散分箱
# 对某列均分成n个FW
pd.cut(表名['列名'],bins = n)
# 显示每一组数据的个数
pd.cut(表名['列名'],bins = n).value_counts()
# 自定义FW,FW左开右闭
pd.cut(表名['列名'],bins = [0,10,20,30]).value_counts()
# 按照某列进行分箱归类作新列(暂不计数)
表名['新列名'] = pd.cut(表名['列名'],bins = [0,10,20,30],labels=['名称1','名称2','名称3'])
# 对每个FW命名
pd.cut(表名['列名'],bins = [0,10,20,30],labels=['名称1','名称2','名称3']).value_counts()
8.Concat关联(索引关联)
# 竖着关联(值不够,NaN来凑)
pd.concat([表1,表2],axis=0)
# 横着关联(值不够,NaN来凑)
pd.concat([表1,表2],axis=1)
# join指定关联方式
pd.concat([表1,表2],axis=0,join='inner')
9.Merge关联(字段关联)
# 按照指定字段内连接(左右相同才算)
左表.merge(右表,on='关联字段',how='inner')
# 按照指定字段左外连接(保留左表,值不够,NaN来凑)
左表.merge(右表,on='关联字段',how='left')
# 按照指定字段右外连接(保留右表,值不够,NaN来凑)
左表.merge(右表,on='关联字段',how='right')
# 按照指定字段左右连接(保留左右表,值不够,NaN来凑)
左表.merge(右表,on='关联字段',how='outer')
# 两关联字段不同名,按照指定字段内连接(值不够,NaN来凑)
左表.merge(右表,left_on='关联字段1',right_on='关联字段2',how='inner')
# 指定sufhixes后缀,当关联结果中,出现了同名的字段,用于区分哪个字段来自于哪一张表,默认是('_x,_y')
左表.merge(右表,left_on='关联字段1',right_on='关联字段2',how='inner',suffixes=('_left','_right'))
10.join合并(左字段,右索引)
# 指定后缀
左表.join(右表,lsuffix='_left',rsuffix='_right')
# 左表的某列和右表的index做join,左表的一列数据和右表的行索引进行合并
左表.join(右表,on='某列',lsuffix='left',rsuffix='right')
11.行列转置及透视表

index 分组字段之一,在结果中作为行索引

columns 分组字段之一,在透视表结果中作为列名

values 聚合字段,在透视表的结果中展示在值的位置上

aggfunc 聚合函数,对聚合字段使用的统计函数名字

需要注意的是,index、columns、values都可以传列表,aggfunc可以针对不同的value选择不同的聚合方式,此时需要传入字典,但是不推荐把表做的过于复杂。

# 转置
print(表名.T)
# 计算的结果可以通过分组聚合来实现,只不过是展示的方式跟分组聚合有差异
表名.pivot_table(index='作行索引的列名',columns='作行索引字段名的列名',values='作数据的列名',aggfunc='作数据的列的操作方式')
# 例子
uniqlo_df.pivot_table(index='城市',columns=['产品名称'],values='销售金额',aggfunc='sum')
# 也可以对多个字段进行展示
uniqlo_df.pivot_table(index='城市',columns=['产品名称','销售渠道'],values='销售金额',aggfunc='sum')
12.数据可视化-面向过程
# 导包
import pandas as pd
import matplotlib.pyplot as plt
# 准备数据的x轴坐标
x = [-3, 5, 7] 
# 准备数据的y轴坐标
y = [10, 2, 5] 
# figure 创建画布,figsize指定画布大小
plt.figure(figsize=(15,3))  
# plot 绘图
plt.plot(x, y) 
# xlim 设置x轴坐标的显示范围
plt.xlim(-5, 10) 
# ylim 设置y轴坐标的显示范围
plt.ylim(-3, 15) 
# 设置x轴标签 size字体,大小
plt.xlabel('X Axis',size=20) 
# 设置y轴标签
plt.ylabel('Y axis') 
# 设置标题内容, size字体大小
plt.title('o',size=30) 
# 设置网格线
plt.grid(True)
# 显示图片
plt.show() 
13.数据可视化-面向对象
# 创建坐标轴对象
fig, ax = plt.subplots(figsize=(15,3))
# 调用坐标轴的绘图方法
ax.plot(x, y) 
# 调用坐标轴的设置x轴上下限的方法
ax.set_xlim(0, 10) 
ax.set_ylim(-3, 8) 
# 调用坐标轴的设置x轴标签的方法
ax.set_xlabel('X axis') 
# 调用坐标轴的设置y轴标签的方法
ax.set_ylabel('Y axis',size = 20) 
# 调用坐标轴的设置标题的方法
ax.set_title('Line Plot',size = 30) 
plt.show()
14.快速生成柱状图
import pandas as pd
import matplotlib.pyplot as plt
名称 = pd.read_csv('D:/Yuanman/day01/02_代码/data/seaborn-data/tips.csv')
# 创建画布
plt.figure(figsize=(16,8))
# 显示列
plt.hist(名称['列名'],bins=10)
# 显示网格线
plt.grid(True)
plt.show()
15.快速生成散点图
# 查看两列数据是否有关系
import pandas as pd
import matplotlib.pyplot as plt
名称 = pd.read_csv('D:/Yuanman/day01/02_代码/data/seaborn-data/tips.csv')
# 创建画布
plt.figure(figsize=(16,8))
# 显示列(两个变量之间是否有关联)
plt.scatter(名称['列1'],名称['列2'])
# 显示网格线
plt.grid(True)
plt.show()
16.中文显示
# 用来正常显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
# 用来正常显示负号
plt.rcParams['axes.unicode_minus']=False
# 快速画折线图,定义网格线、画布、标题并中文显示
表名.plot(grid=True,figsize=(10,6),title='狗')
plt.show()
17.众图表归类
# 折线图的全写方式,也可以自定义指定xy轴对应的列
表名.plot.line(x='列名', y='列名')
# 柱状图,加stacked=True多列合一
表名.plot.bar(stacked=True) 
# 横向柱状图(条形图),加stacked=True多列合一
表名.plot.barh(stacked=True) 
# 直方图
表名.plot.hist() 
# 箱形图
表名.plot.box() 
# 核密度估计图
表名.plot.kde() 
# 面积图
表名.plot.area() 
# 饼图,y='列名',显示百分比,图大小,画布大小
表名.plot.pie(y='列名',autopct='%.2f%%',radius=0.9,figsize=(16,8)) 
# 散点图
表名.plot.scatter() 
# 气泡图(更高维度的散点图),参数s控制点的大小,实现三维数据展示
表名.plot.scatter(x='第1维度列',y='第2维度列',grid=True,s=表名['第3维度列']*10,figsize=(16,8))
# 箱线图(图形注释见下图所示)
表名.boxplot()
# 六边形箱体图,或简称六边形图,颜色深浅表示该值出现的频率
# gridsize设定蜂箱格子的大小,数字越小格子越大
表名.plot.hexbin(x='横坐标列', y='纵坐标列', gridsize=12)
plt.show()
箱线图数值展示如下: 

数据较大,生成超级饼图如下: 

Python绘图展示介绍到这里,希望对读者有所帮助,感谢大家的支持😍!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1798702.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

github有趣项目:Verilog在线仿真( DigitalJS+edaplayground)

DigitalJS https://github.com/tilk/digitaljs这个项目是一个用Javascript实现的数字电路模拟器。 它旨在模拟由硬件设计工具合成的电路 像 Yosys(这里是 Github 存储库),它有一个配套项目 yosys2digitaljs,它可以转换 Yosys 将文…

STCunio数字电源带PID数字闭环(带详细的代码说明文档)

STCunio,即 system on chip unusual i/o,采用类似 arduino 构架设计,即使没有单片机知 识的设计师和艺术家们能够很快地通过它学习电子和传感器的基础知识,并应用到他们的设 计当中。设计中所要表现的想法和创意才是最主要的,至于…

创新指南 | 5个行之有效的初创企业增长策略

本文探讨了五种初创企业实现快速增长的有效策略:利用网络效应通过激励和资本化用户增长;通过持续提供高质量内容建立信任和权威的内容营销;利用简单有效的推荐计划扩展用户群;采用敏捷开发方法快速适应市场变化和客户反馈&#xf…

基于springboot实现社区养老服务系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现社区养老服务系统演示 摘要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本社区养老服务系统就是在这样的大环境下诞生,其可以帮助…

签名安全规范:解决【请求对象json序列化时,时间字段被强制转换成时间戳的问题】

文章目录 引言I 签名安全规范1.1 签名生成的通用步骤1.2 签名运算(加密规则)1.3 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序)1.4 允许的请求头字段1.5 签名校验工具II 注解校验签名2.1 获取请求数据,并校验签名数据2.2 解决时间格式被强制转换成时间戳的问题…

2024年数据防泄密软件精选,五款热门防泄密软件集锦

在信息爆炸的今天,企业数据的安全性已成为不可忽视的关键问题。 随着数字化转型的加速,数据泄露的风险也随之增加,这对企业的核心竞争力构成了严重威胁。 为了构建坚不可摧的数据防线,选择高效可靠的数据防泄密软件显得尤为重要…

爬取基金收盘价并用pyecharts进行展现

爬取基金收盘价并用pyecharts进行展现 一、用到的第三方包 因为使用到了一些第三方的包,包还是比较大的如果直接从社区下载比较费劲,所以建议配置国内镜像源,这里以清华的镜像源为例。 pip config set global.index-url https://pypi.tuna…

FastAdmin自定义滚动条

效果 实现过程 HTML代码 <style>.custom-scrollbar {position: fixed;/*bottom: 0px;*/height: 20px;width: 97.5%;overflow-y: scroll;overflow-x: scroll;z-index: 100;}#scrollDivTable{height: 20px;}/*原滚动条不显示*//*.fixed-table-body::-webkit-scrollbar {*/…

电脑知识 如何看懂串口通信协议(程序员视角)

目录 前言 一、串口文档 二、明确身份 三、串口设置 四、看懂命令格式 五、看懂发送命令的格式 1.帧头和帧尾 2.帧内数据长度 3.帧内数据/具体命令 4.整体命令 5.真正的命令字和命令值 六、第一个案例 1.发送命令 2.雷达的回答 七、作者的话 前言 用一个案例&#…

C++基础与深度解析 | 类与面向对象编程 | 数据成员 | 成员函数 | 访问限定符与友元 | 构造、析构成员函数 | 字面值类、成员指针与bind交互

文章目录 一、结构体与对象聚合二、成员函数&#xff08;方法&#xff09;三、访问限定符与友元1.访问限定符2.友元&#xff08;慎用&#xff09; 四、构造、析构与复制成员函数1.构造函数2.析构函数3.补充 五、字面值类&#xff0c;成员指针与bind交互1.字面值类2.成员指针3.b…

无线麦克风哪个牌子性价比高?一文告诉你无线领夹麦克风怎么挑选

​当我们谈论到演讲、表演或者录制视频时&#xff0c;一个高质量的无线麦克风能够使得整个体验提升至一个全新的水平。它不仅能够保证声音的清晰度和真实度&#xff0c;还能够让使用者在演讲或者表演时更加自信和舒适。基于对市场的深入研究和用户体验的考量&#xff0c;我挑选…

【css3】png图片实现动态动画

.border_style {width: 400px;height: 400px;background-color: black;margin: auto;}keyframes sprite-animation {0% {background-position: 0 0;}100% {background-position: 0 -2064px;/* 假设每个图像的宽度为100px */}}.wrj_box {width: 86px;height: 86px;background-im…

S3Dlib | 太炫酷!所有3D图形它都可以绘制...

前言 一、「s3dlib」-Python中王炸3D绘图神器 二、可视化学习圈子是干什么的&#xff1f; 三、系统学习可视化 四、猜你喜欢 前言 我们的数据可视化课程已经上线啦&#xff01;&#xff01;目前课程的主要方向是 科研、统计、地理相关的学术性图形绘制方法&#xff0c;后续…

Patchwork++:基于点云的快速、稳健的地面分割方法

1. 背景 论文发表在2022IROS&#xff0c;是Patchwork的改进版本。算法通过数学方法进行快速而鲁棒性很强的地面分割&#xff0c;在智能机器人上的可操作性非常强。通过微调算法&#xff0c;可以应用于16-beams等多种规格的激光雷达。由于激光雷达点云数据标注的难度非常大&…

数据泄露防护(DLP)系统有哪些?2024年数据泄露防护系统TOP5排名

数据泄露防护&#xff08;DLP&#xff09;系统是企业为确保敏感信息不被非法访问、使用或泄露而采用的重要安全策略。以下是一些常见的数据泄露防护系统&#xff0c;以及它们的功能和优点。 1、安企神 DLP 安企神 DLP是一款为企业研发的数据防泄漏系统&#xff0c;以强大的功能…

pxe自动装机

概念 pxe是c/s模式。允许客户端通过网络从远程服务器&#xff08;服务端&#xff09;下载引导镜像&#xff0c;加载安装文件&#xff0c;实现自动化安装操作系统。 无人值守&#xff1a;安装选项不需要人为干预&#xff0c;可以自动化实现。 pxe的优点&#xff1a;1.规模化&…

美琳莱卡:创新消费模式引领新零售时代

公司成立时间与定位 美琳莱卡自创立之初,便以独特的视角和前瞻性的战略定位,立足于消费市场的变革前沿。公司成立于2024年,正值全球数字化浪潮蓬勃兴起,消费升级趋势日益明显之际。美琳莱卡敏锐地捕捉到这一时代机遇,将自身定位为创新消费模式的引领者,致力于通过线上线下高度…

问题:当频点数大于载波数时,() #学习方法#知识分享

问题&#xff1a;当频点数大于载波数时&#xff0c;&#xff08;&#xff09; A.基带跳频可以执行&#xff0c;混合跳频可以执行 B.基带跳频不可以执行&#xff0c;混合跳频可以执行 C.基带跳频可以执行&#xff0c;混合跳频不可以执行 D.基带跳频不可以执行&#xff0c;混…

Windows 搭建C++ 纯开源开发环境 进行 YOLOv8 模型推理的开发测试环境

文章大纲 IDE 选择纯开源首选 Codeblocks 跨平台开发IDE其次选择 visual studio 社区版 or visual studio code包管理MSYS2pacmanconda & mambavcpkgNuGetapt-get其他手动配置 Visual studio 开发环境下载 visual studio基本配置基本测试:打开图片,打开摄像头读取图片读取…

大学信息资源管理试题及答案,分享几个实用搜题和学习工具 #职场发展#微信

人工智能技术的发展正逐渐改变着我们的生活&#xff0c;学习如何运用这些技术将成为大学生的必备素养。 1.彩虹搜题 这是个微信公众号 算法持续优化&#xff0c;提升搜题效果。每一次搜索都更精准&#xff0c;答案更有价值。 下方附上一些测试的试题及答案 1、在SpringMVC配…