Matpoltlib Pandas 学习笔记

目录

Matplotlib

matplotlib常用方法

散点图

饼图

直方图

Pandas

pandas.Series(*args)参数说明

DataFrame 数据结构

CSV file

数据清洗


Matplotlib

定义: Matplotlib 是python的绘图库

Pyplot 是其子库,通用绘制2D图表,

matplotlib常用方法
import matplotlib.pyplot as plt# 常用方法
plot()       # 绘制线图和散点图
scatter()    # 散点图
bar()        # 水平/垂直条形图
hist()       # 直方图
pie()        # 饼图
imshow()     # 绘制图像
subplots()   # 绘制子图# plot([x],y,[fmt],*,data=None,**kwargs)
x,y        # x,y轴的数据,可以为列表或数组
fmt        # 可选,定义样式[如颜色、标记和样式]
**kwargs   # 二维平面上,设置指定属性,如标签或线的宽度eg:plt.plot(np.array([1,3]),np.array([2,4]))
plt.show()plt.plot(ypoints,marker='o',linestyle='dotted',color='r')  
# marker  o - 点,* - ⭐,# linestyle(同ls)  param  
solid   # '-'   实线
dotted  # ':'   点虚线
dashed  # '--'  破折线
dashdot # '-.'  点划线plt.xlable('x-label')  # x轴的标签
plt.ylable('y-label')  # y轴的标签plt.grid(b=None,which='major',axis='both')   
b        # 默认None,显示网格
which    # 可选 'minor'、'both',默认'major'
axis     # 默认'both',可选'x'或'y'
**kwargs # 可选,如:color='r',linestryle='-',linewidth=2
散点图
scatter()   #  散点图bar()       # 柱形图
plt.bar(x,height,width=0.8,bottom=None,*,align='centor',data=None,**kwargs)x           # x轴数据
height      # 柱形图的高度
width       # 柱形图的宽度
bottom      # y左边,默认0
align       # 柱形图与x坐标的对齐方式,centor中心位置,edge对齐左边
饼图
plt.pie(x,explode=None,labels=None,colors=None,autopct=None)param:
explode   # 各扇形的间隔,默认为0
labels    # 各扇形的标签
autopct   # 设置扇形内各个扇形的百分比,%d%%百分比整数,%0.1f一位小数eg:
import matplotlib.pyplotas plt
# 数据
sizes =[15,30,45,10]
# 饼图的标签
labels =['A','B','C','D']
# 饼图的颜色
colors =['yellowgreen','gold','lightskyblue','lightcoral']
# 突出显示第二个扇形
explode =(0,0.1,0,0)
# 绘制饼图
plt.pie(sizes, explode=explode, labels=labels, colors=colors,autopct='%1.1f%%', shadow=True, startangle=90)
# 标题
plt.title("RUNOOB Pie Test")
# 显示图形
plt.show()
直方图
plt.hist(x,bins=None,range=None,)param:
x     # 绘制数据,可以是一维数组或列表
bins  # 可选参数,直方图的箱数,默认10
range # 直方图的值范围eg:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt# 使用 NumPy 生成随机数
random_data = np.random.normal(170, 10, 250)# 将数据转换为 Pandas DataFrame
dataframe = pd.DataFrame(random_data)# 使用 Pandas hist() 方法绘制直方图
dataframe.hist()# 设置图表属性
plt.title('RUNOOB hist() Test')
plt.xlabel('X-Value')
plt.ylabel('Y-Value')# 显示图表
plt.show()

Pandas

全称: 'panel data' and 'python data analysis'

Analy: Series(一维数据)、DataFrame(二维数据)

主要应用:

  • 数据清洗:处理缺失数据、重复数据等
  • 数据转换:改变数据的形状、结构或格式
  • 数据分析: 进行统计、聚合、分组
  • 数据可视化:整合Matplotlib 进行数据可视化
pandas.Series(*args)参数说明
Pandas 数据结构 - Series
特点:
索引:可以是int、str、date等,若无自动创建int 索引
数据类型:通常int、float、str 等pandas.Series(data, index, dtype, name, copy)param:
data   #  一组数据(ndarray类型)
index  # 索引标签,若无默认从0开始
dtype  # 数据类型
name   # 名称
copy   # 拷贝数据,默认Falseeg1: # 无索引值,从0开始
import pandas as pd
a=[1,2,3]
mystr=pd.Series(a)
print(mystr)  # mystr[2]  输出  2eg2:  # 设置索引值,列表形式
import pandas as pd
a=['a','b','c']
mystr=pd.Series(a,index=['x','y','z'])
print(mystr)eg3:  # 索引值,字典形式
import pandas as pd
str_dict={'1':'a','2':'b'}
mystr=pd.Series(str_dict)
DataFrame 数据结构
DataFrame-表格型数据结构
特点:行/列:多列中每一列可看作Series,行索引可用标识每一行二维结构:视为多个Series对象组成的字典列类型结构:可包含不同类型结构:eg:int、float、stringpandas.DataFrame(data,index,columns,dtype,copy)param:data      # 一组数据index     # 索引columns   # 列标签dtype     # 数据类型copy      # 拷贝数据,默认False      eg1: # 列表类型
import pandas as pd
data = [['a','1'],['b',2],['c',3]]
df=pd.DataFrame(data,columns=['x','y'],dtype=float)
print(df)eg2: # ndarrays类型
import pandas as pd
s_dict={'x':['1','2','3'],'y':['a','b','c']}
df=pd.DataFrame(s_dict)
print(df)
# 返回第一行
print(df.loc[0])   # 使用loc属性返回指定行的数据,
# 返回第二行
print(df.loc[1])    # df.loc[0,2] 返回1和3行的数据eg3: # dict类型
import pandas as pd
data=[{'a':1,'b':2},{'a':'x','b':'y'}]
df=pd.DataFrame(data)
print(df)# 输出a  b
0  1  2
1  x  y
CSV file
CSV  [Comma-Separated Values,逗号分隔值] # 以纯文本形式存储表格数据pd.read_csv('file')  # 获取文件数据eg:
import pandas as pd
df = pd.read_csv('test.csv')
print(df.to_string())   # to_string 可显示全部数据,避免用 ... 代替df.to_csv('test.csv')  # 将读取的文件保存到csv文件
df.head(n)             # 获取前n行数据   同  tail(n)  用法
注:当无参数是默认前5行或后5行
df.info                # 返回表格的基本信息pd.json_normalize(data,record_path=['students'])  # 完整解析数据
数据清洗
# 数据清洗:如数据缺失、数据格式错误、错误数据或重复数据
dropna()          # 方法
DataFrame.dropna(axis=0,how='any',thresh=None,subset=None,inplace=False)
param:axis      # 默认为0,表示遇到空值删除整行,若设置为1,删除整列how       # 默认为any,遇到NA删除整行,若设置为all删除整列thresh    # 设置需要多少非空值的数据才可以保留subset    # 设置想要检查的列,若多列使用列名的list做参数inplace   # 如果设置True,将计算的值覆盖源数据并返回Noneeg1:  # 将指定类型数据指定为空数据类型
import pandas as pd
missing_values=['n/a','na','--']
df=pd.read_csv('test.csv',na_values=missing_values)
print(df['key1'])
print(df['key1'].isnull())   # 返回每行数据的bool值eg2:  # 删除包含空数据的行
import pandas as pd
df= pd.read_csv('test.csv')
new_df=df.propna()          #  若设置 inplace=True 会修改源数据,若设置 subset=['key1']  会移除该列为空的行
print(new_df.to_string())  df=fillna(123,inplace=True) # 用123替换空字段
df['pid']=fillna(123,inplace=True) # 用123替换pid为空的数据mean()      # 平均值
median()    # 中位数值
mena()      # 众数# 清洗格式错误数据,如时间data = {'date':['2023/12/01','2023/12/02','20231203']'duration':[50,40,3000]
}
df= pd.DataFrame(data,index=['1','2','3'])df['date']=pd.to_datetime(df['date'])   # 清洗格式问题# df.loc[2,'duration']=30     # 修改数据
# 将duration大于40的值设置为40
for x in df.index:if df.loc[x,'duration']>40:df.loc[x,'duration']=40   # 修改值,若删除需执行  df.drop(x,inplace=True)print(df.to_string())df.duplicated()  # 清洗重复数据,打印其每行的bool值
df.drop_duplicates()  # 删除重复数据

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

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

相关文章

Redis 笔记二

概览 1.高并发秒杀问题及可能出现的bug 2.秒杀场景JVM级别锁和分布式锁 3.大厂分布式锁Redisson框架 4.从Redisson源码剖析lua解决锁原子性问题 5.从Redisson源码剖析经典锁续命问题 6.Redis主从架构锁失效如何解决 7.Redlock分布式锁高并发下可能存在的问题 8.双十一大促如何将…

alfred自定义谷歌翻译workflow

如果要实现自定义workflow,则必须安装付费版的alfred,囊中羞涩的话可以自行淘宝。自定义步骤如下: 1. 新建空的workflow,填写基本信息 2. 开发python脚本 打开该workflow所在目录,进行下面步骤: 首先安装…

OpenCV第 1 课 计算机视觉和 OpenCV 介绍

文章目录 第 1 课 计算机视觉和 OpenCV 介绍1.机器是如何“看”的2.机器视觉技术的常见应用3.图像识别介绍4. 图像识别技术的常见应用5.OpenCV 介绍6.图像在计算机中的存储形式 第 1 课 计算机视觉和 OpenCV 介绍 1.机器是如何“看”的 我们人类可以通过眼睛看到五颜六色的世界…

openssl3.2/test/certs - 010 - 768-bit key

文章目录 openssl3.2/test/certs - 010 - 768-bit key概述笔记END openssl3.2/test/certs - 010 - 768-bit key 概述 openssl3.2 - 官方demo学习 - test - certs 笔记 // \file my_openssl_linux_log_doc_010.txt // \note openssl3.2/test/certs - 010 - 768-bit key // …

一文(10图)了解Cornerstone3D核心概念(万字总结附导图)

Cornerstone3D介绍 Cornerstone3D是一个专门为处理三维医学影像而设计的JavaScript库。 它是Cornerstone项目的一部分,旨在为医学影像社区提供高性能、可扩展且易于使用的开源Web工具,专注于提供交互式的3D医学图像浏览体验,适用于多种医学…

9款最新文生图模型汇总!含华为、谷歌、Stability AI等大厂创新模型(附论文和代码)

2023年真是文生图大放异彩的一年,给数字艺术界和创意圈注入了新鲜血液。从起初的基础图像创作跃进到现在的超逼真效果,这些先进的模型彻底变革了我们制作和享受数字作品的途径。 最近,一些大公司比如华为、谷歌、还有Stability AI等人工智能巨…

【Linux】Linux进程信号(上)

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:Linux 🎯长路漫漫浩浩,万事皆有期待 上一篇博客:【Linux】…

Java中Map接口常用的方法

java.util.Map接口中常用的方法: 1.Map和Collection没有继承关系 2.Map集合以key和value的方式存储数据:键值对 key和value都是引用数据类型 key和value都是存储对象的内存地址 key起到主导的地位,value是key的一个附属品 3.Map接口中常用的方…

【新加坡机器人学会支持】第三届工程管理与信息科学国际学术会议 (EMIS 2024)

第三届工程管理与信息科学国际学术会议 (EMIS 2024) 2024 3rd International Conference on Engineering Management and Information Science 【国际高级别专家出席/新加坡机器人学会支持】 第三届工程管理与信息科学国际学术会议 (EMIS 2024)将于2024年4月12-14日在中国洛…

算法(4)——前缀和

目录 一、前缀和的定义 二、一维前缀和 三、一维前缀和OJ题 3.1、前缀和 3.2、寻找数组中心下标 3.3、除自身以外数组的乘积 3.4、和为K的数组 3.5、和可被K整除的子数组 3.6、连续数组 四、二位前缀和 4.1、二维前缀和 4.2、矩阵区域和 一、前缀和的定义 对于一个…

40. 组合总和 II - 力扣(LeetCode)

题目描述 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意:解集不能包含重复的组合。 输入示例 candidates [10,1,2,7,…

Oracle Apps文件系统和数据库的维护工作ADADMIN

ADADMIN主要用于Oracle Apps文件系统和数据库的维护工作,是Apps DBA常用的工具。其一级菜单的具体功能介绍如下: AD Administration Main Menu: Generate Applications Files:如果系统用户无法访问Message、Form或者Report&#…

开始学习vue2(Vue方法)

一、过滤器 过滤器(Filters)是 vue 为开发者提供的功能,常用于文本的格式 化。过滤器可以用在两个地方:插值表达式 和 v-bind 属性绑定。 过滤器应该被添加在 JavaScript 表达式的尾部,由“管道符 ”进行 调用&#…

【Leetcode 144.二叉树的前序遍历】将二叉树每个节点的值以前序遍历的顺序存入数组中

int* preorderTraversal( struct TreeNode*root, int* returnSize) { }解答代码: int TreeSize(struct TreeNode*root){return rootNULL?0:TreeSize(root->left)TreeSize(root->right)1;}void Prevorder(struct TreeNode*root,int*a,int*pi){if(rootNULL)re…

理解反向代理

反向代理是一个不可或缺的组件。 它在客户端和服务器之间充当中介,提高了安全性、负载平衡和应用性能。 一、反向代理简介 反向代理是一种服务器,它位于客户端和后端服务器之间。与常见的(正向)代理不同,反向代理代表…

宝塔面板部署MySQL并结合内网穿透实现公网远程访问本地数据库

文章目录 前言1.Mysql服务安装2.创建数据库3.安装cpolar3.2 创建HTTP隧道 4.远程连接5.固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 宝塔面板的简易操作性,使得运维难度降低,简化了Linux命令行进行繁琐的配置,下面简单几步,通过宝塔面板cp…

【C++】list的使用

目录 1 构造1.1 无参构造1.2 构造的list中包含n个值为val的元素1.3 用[first, last)区间中的元素构造list1.4 拷贝构造 2 迭代器的使用2.1 begin end2.2 rbegin rend 3 容量操作3.1 empty size 4 获取元素4.1 front back 5 插入、删除、修改5.1 头插-push_front和尾插-push…

C++从零开始的打怪升级之路(day18)

这是关于一个普通双非本科大一学生的C的学习记录贴 在此前,我学了一点点C语言还有简单的数据结构,如果有小伙伴想和我一起学习的,可以私信我交流分享学习资料 那么开启正题 今天分享的是关于vector的题目 1.只出现一次的数字1 136. 只出…

oracle 19c rac集群管理 ------ 日志管理

oracle 19C rac 数据库的目录结构及日志路径 在Oracle 19c RAC(Real Application Clusters)集群中,有多个组件和层级生成的日志文件,记录着集群的活动、事件和错误信息,用于故障诊断、性能优化和集群管理。以下是常见…

为什么有的人渐渐不点外卖了?

近年来,随着外卖服务的普及,越来越多的人开始依赖外卖来解决饮食问题。然而,现在有些人开始逐渐减少或停止点外卖了。那么,为什么会出现这种情况呢? 首先,外卖食品的质量问题一直是人们关注的焦点。尽管外…