Python知识汇总

 重要链接:

matplotlib库:matplotlib — Matplotlib 3.5.1 documentation

DataFrame库:DataFrame — pandas 2.2.1 documentation (pydata.org)

Python Matplotlib 实现散点图、曲线图、箱状图、柱状图示例:Python Matplotlib 实现散点图、曲线图、箱状图、柱状图示例(满足基本的画图需求)_matplotlib实现散点图-CSDN博客

绘图颜色色板:matplotlib、seaborn颜色、调色板、调色盘。 - 知乎

常用函数:

基础操作合集:

获取所有列名

list(df)

df.columns.tolist()

list(df.columns)

获取数据类型

type(df) 

如显示:<class 'padas.core.frame.DataFrame>

获取每列类型df.dtypes

Pandas读取某列某行数据——loc、iloc

loc:通过行、列的名称或标签来索引
iloc:通过行、列的索引位置来寻找数据数据:AA  BB  CC  DD  EE
row1  2   3   56  55  4
row2  5   7   4   34  5
row3  9   7   4   7   15
row4  5  72   43  34  5data1 = data.loc['row2']   #row2一行的值
data1 = data.loc['row2',:] #row2一行的值
data2 = data.loc[ : ,'BB'] #BB一列的值
data3 = data.loc['row1', 'BB'] #row1行BB列对应的值,3
data4 = data.loc['row2':'row3','AA':'DD']  #第2行到第3行,第BB列到第DD列这个区域内的值
data5 = data.loc[ data.BB > 6] #等价于 data5 = data[data.BB > 6] #BB列大于6的每一行数据
data6 = data.loc[ data.BB >6, ["BB","CC","DD"]] #切片操作,选择BB CC DD三列区域内BB列大于6的值data1 = data.iloc[1]  #第二行的值,
data1 = data.iloc[1, :]  #效果与上面相同
data2 = data.iloc[:, 1] #读取第二列的值
data3 = data.iloc[1, 1] # 读取第二行,第二列的值
data4 = data.iloc[1:3, 2:4] #左闭右开切片操作,第2、3行,第3、4列值

Python、Numpy和Pandas数据类型:

Python中的str和Numpy中的string、unicode(字符编码),在Pandas中都表示为object,也就是字符串在Pandas中的类型为object。

datetime数据类型转换:

#object转为datatime
df = pd.DataFrame({'date': ['2011-04-24 01:30:00.000']})
df['date'] = pd.to_datetime(df['date'])
#打印结果
0   2011-04-24 01:30:00
Name: date, dtype: datetime64[ns]
#datatime转为非时间数据
df['date'] = df['date'].astype('object')
#打印结果
0   2011-04-24 01:30:00
Name: date, dtype: object#如果字符串格式不正规,可以通过format转换
pd.to_datetime("20110424 01:30:00.000", format='%Y%m%d %H:%M:%S.%f')

时间补全、重采集resample()函数:

采样频率:python时序分析之重采集(resample) - 知乎

resampling采样相关算法、属性:Resampling — pandas 2.2.1 documentation (pydata.org)

按照一分钟的频率将时间补全,mean()将补齐的时间数据识别为NaN
#ffill()方法使用前面的值来填充缺失的值,interpolate()是使用插值法补全,bfill()是向后补全
df=df.resample('1T').mean().ffill()
#获得五分钟为间隔的数据,asfreq()也可以换成其他,如first()
df5=df.resample('5T').asfreq()
df5=df.loc[::5,:]

pandas.Dataframe.set_index( )函数设置索引:

索引设置
df.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False)
-keys:列标签或列标签/数组列表,需要设置为索引的列
-drop:默认为True,删除用作新索引的列
-append:是否将列附加到现有索引,默认为False。
-inplace:输入布尔值,表示当前操作是否对原数据生效,默认为False。
-verify_integrity:检查新索引的副本。否则,请将检查推迟到必要时进行。将其设置为false将提高该方法的性能,默认为false。

pandas.Dataframe.reset_index()函数重置索引:

将索引列变为普通数据列
drop: 重新设置索引后是否将原索引作为新的一列并入DataFrame,默认为False
inplace: 是否在原DataFrame上改动,默认为False
level: 如果索引(index)有多个列,仅从索引中删除level指定的列,默认删除所有列
col_level: 如果列名(columns)有多个级别,决定被删除的索引将插入哪个级别,默认插入第一级
col_fill: 如果列名(columns)有多个级别,决定其他级别如何命名import pandas as pd
import numpy as npdf = pd.DataFrame([('bird', 389.0), ('bird', 24.0), ('mammal', 80.5), ('mammal', np.nan)],index=['falcon', 'parrot', 'lion', 'monkey'], columns=('class', max_speed'))
#图1
print(df)
#图2
df1 = df.reset_index()
print(df1)
#图3
df2 = df.reset_index(drop=True)
print(df2)

pandas.Dataframe.rename()函数:

用来修改Dataframe数据的行名和列名。
columns:列名
index:行名
axis:指定坐标轴
inplace:是否替换,默认为False。inplace为False时返回修改后结果,变量自身不修改。inplace为True时返回None,变量自身被修改。>>> import pandas as pd
>>> df  A  B
0  1  4
1  2  5
2  3  6# 方法一:不用axis修改。使用方法为df.rename(columns={"旧列名": "新列名"}) 
>>> df.rename(columns={"A": "a", "B": "c"})  # 修改columns。inplace未设置,返回修改后的结果a  c
0  1  4
1  2  5
2  3  6
>>> df  # inplace未设置,默认为false,则df自身不被改变A  B
0  1  4
1  2  5
2  3  6
>>> df_re=df.rename(columns={"A": "a", "B": "c"},index={0:"0a",1:"1a"})  # 同时修改行名和列名
>>> df_rea  c
0a  1  4
1a  2  5
2   3  6# 方法二:用axis修改,只修改行名列名之一时等价,无法同时修改
>>> df.rename({1: 2, 2: 4}, axis='index')  # 修改行名,1改成2,2改成4A  B
0  1  4
2  2  5
4  3  6
>>> df.rename(str.lower, axis='columns')  # 列名大写变小写a  b
0  1  4
1  2  5
2  3  6

绘图函数:

plt.annotate()函数:

用于在图中标注文字,需要用循环配合,一个点一个点的标记。

曲线中异常点/特征点的标记方法。

 参考:https://matplotlib.org/3.5.1/api/_as_gen/matplotlib.pyplot.annotate.html

#参数
#s 为注释文本内容
#xy 为被注释的坐标点
#xytext 为注释文字的坐标位置;
#weight 设置字体线型;color 设置字体颜色;arrowprops 箭头参数,参数类型为字典dict;bbox给标题增加外框 import matplotlib.pyplot as plt
import numpy as npx = np.arange(0, 6)
y = x * x#图1
plt.plot(x, y, marker='o')
for xy in zip(x, y):plt.annotate("(%s,%s)" %(x,y), xy=xy, xytext=(-20, 10), textcoords='offset points')
plt.show()#图2
ax.annotate('data = (%.1f, %.1f)'%(xdata, ydata),(xdata, ydata), xytext=(-2*offset, offset), textcoords='offset points',bbox=bbox, arrowprops=arrowprops)#图3,上述用于标注文字,但如果想把特殊的坐标用点标示出来可以结合散点图函数
x1=list()
y1=list()
plt.plot(x, y, marker='o')
for xy in zip(x, y):if x>3:plt.annotate("(%s,%s)" %(x,y), xy=xy, xytext=(-20, 10), textcoords='offset points')x1.append(x)y1.append(y)
plt.scatter(x1,y1,marker="p',color='m'))

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

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

相关文章

深度学习预测分析API:金融领域的Game Changer

&#x1f680; 引言 在这个AI遍地开花的时代&#xff0c;谁能成为金融领域的真正Game Changer&#xff1f;那必然是是深度学习预测分析API。如大脑般高效运转的系统不仅颠覆了传统操作&#xff0c;更是以无与伦比的速度和精度赋予了金融数据以全新的生命。 &#x1f4bc; 广泛…

uniapp制作--进步器的选择

介绍&#xff1a; 进步器的选择,一般用于商城购物选择物品数量的场景 注意&#xff1a;该输入框只能输入大于或等于0的整数 效果展示&#xff1a; 代码展示&#xff1a; 以下是一个简单的购物车页面示例&#xff0c;包括选择商品和显示数量的功能&#xff1a; 在这个示例中…

探索人工智能的关键术语与方法

目录 前言1 机器学习&#xff08;Machine Learning&#xff09;2 数据科学&#xff08;Data Science&#xff09;3 监督学习&#xff08;Supervised Learning&#xff09;4 无监督学习&#xff08;Unsupervised Learning&#xff09;5 深度学习&#xff08;Deep Learning&#…

紫光展锐T618_4G安卓核心板方案定制

紫光展锐T618核心板是一款采用纯国产化方案的高性能产品&#xff0c;搭载了开放的智能Android操作系统&#xff0c;并集成了4G网络&#xff0c;支持2.5G5G双频WIFI、蓝牙近距离无线传输技术以及GNSS无线定位技术。 展锐T618核心板应用旗舰级 DynamlQ架构 12nm 制程工艺&#x…

私有化部署自己的ChatGPT,免费开源的chatgpt-next-web搭建

随着AI的应用变广&#xff0c;各类AI程序已逐渐普及&#xff0c;尤其是在一些日常办公、学习等与撰写/翻译文稿密切相关的场景&#xff0c;大家都希望找到一个适合自己的稳定可靠的ChatGPT软件来使用。 ChatGPT-Next-Web就是一个很好的选择。它是一个Github上超人气的免费开源…

简单介绍一下Qt动画系统,并举例说明如何使用

目录 Qt动画系统介绍 分类举例说明 1. 属性动画&#xff08;Property Animation&#xff09;&#xff1a; 2. 并行动画&#xff08;Parallel Animation&#xff09;&#xff1a; 3. 顺序动画&#xff08;Sequential Animation&#xff09;&#xff1a; 4. 动画组&#xf…

闯入监测报警摄像机

闯入监测报警摄像机是用于监测和报警未经授权者闯入特定区域的安全设备。该摄像机通常设置在建筑物、仓库、办公室等需要保护的场所&#xff0c;用于监控周围环境并及时警示相关人员。闯入监测报警摄像机是一种集视频监控和报警功能于一体的安全设备&#xff0c;旨在防范和监测…

2024/3/5打卡线性DP问题---数字三角形*

线性DP&#xff1a; 所谓线性DP&#xff0c;是指递推方程有一种明显的线性关系存在。 在状态规划中&#xff0c;状态可以是一维的&#xff0c;二维的&#xff0c;多维的。例如&#xff0c;在背包问题中&#xff0c;就是一个二维的状态&#xff0c;在求解状态的时候&#xff0c;…

【Deep Dive:AI Webinar】我们是否能将开源许可用于机器学习和人工智能模型?

【深入探讨人工智能】网络研讨系列总共有 17 个视频。我们按照视频内容&#xff0c;大致上分成了 3 个大类&#xff1a; 1. 人工智能的开放、风险与挑战&#xff08;4 篇&#xff09; 2. 人工智能的治理&#xff08;总共 12 篇&#xff09;&#xff0c;其中分成了几个子类&…

IDEA创建Sping项目只能勾选17和21,却无法使用Java8

报错信息 The required java version 17 is not supported by the project SDK 1.8.The maximum supported Java version is 8. 想创建一个springboot项目&#xff0c;本地安装jdk版本为1.8&#xff0c;但是在使用 Spring Initializr创建项目时,版本只能选择21或17&#xff0c;…

MySQL面试题纯享版

基础内容 1、MySQL的架构分层 2、一条 SQL 查询语句的执行流程 3、如何查看 MySQL 服务被多少个客户端连接了&#xff1f; 4、 空闲连接会一直占用着吗&#xff1f; 5、MySQL 的连接数有限制吗&#xff1f; 6、 怎么解决长连接占用内存的问题&#xff1f; 7、执行器与存储引擎…

rust学习(tokio future分析)

自己编写一个impl future来看一下Tokio的是如何实现的。 第一步&#xff1a; 代码&#xff1a; struct TExecuteTask {count:u32 }impl Future for TExecuteTask {type Output ();fn poll(self: Pin<&mut Self>, cx: &mut Context<_>) -> Poll<S…

AI大预言模型——ChatGPT与AI绘图及论文高效写作

原文链接&#xff1a;AI大预言模型——ChatGPT与AI绘图及论文高效写作 2023年随着OpenAI开发者大会的召开&#xff0c;最重磅更新当属GPTs&#xff0c;多模态API&#xff0c;未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义&#xff0c;不亚于互联网…

03:大数据与Hadoop|分布式文件系统|分布式Hadoop集群

大数据与Hadoop&#xff5c;分布式文件系统&#xff5c;分布式Hadoop集群 Hadoop部署Hadoop HDFS分布式文件系统HDFS部署步骤一&#xff1a;环境准备HDFS配置文件 查官方手册配置Hadoop集群 日志与排错 mapreduce 分布式离线计算框架YARN集群资源管理系统步骤一&#xff1a;安装…

Java已死?大学生还有必要学习Java吗【底部明信片,添加可进大学生求职社群】

目录 1. Java的历史与底蕴 2. 企业级应用的稳定性 3. Android应用开发 4. 大数据和云计算 5. 补充现代技术栈 6. Java生态系统的完备性 在技术的迅速演进中&#xff0c;有人开始质疑传统编程语言的地位&#xff0c;其中Java也未能幸免。然而&#xff0c;尽管一些人宣称“…

安卓开发:计时器

一、新建模块 二、填写应用名称和模块名称 三、选择模块&#xff0c;Next 四、可以保持不变&#xff0c;Finish 五、相关目录文件 六、相关知识 七、&#xff1f;

基本设计模式

单例模式 ES5 function Duck1(name:string){this.namenamethis.instancenull }Duck1.prototype.getNamefunction(){console.log(this.name) }Duck1.getInstancefunction(name:string){if(!this.instance){this.instance new Duck1(name)} } const aDuck1.getInstance(a) const…

PyTorch深度学习实战(38)——StyleGAN详解与实现

PyTorch深度学习实战&#xff08;38&#xff09;——StyleGAN详解与实现 0. 前言1. StyleGAN1.1 模型介绍1.2 模型策略分析 2. 实现 StyleGAN2.1 生成图像2.2 风格迁移 小结系列链接 0. 前言 StyleGAN (Style-Generative Adversarial Networks) 是生成对抗网络 (Generative Ad…

手搓反激电源 | 五、反激高频变压器的设计与计算

手搓反激电源 | 五、反激高频变压器的设计与计算 先上干货&#xff0c;变压器设计规格书 千里之行,积于跬步,万里之船,成于罗盘 A journey of thousands of miles accumulates in steps, and the ship of thousands of miles becomes a compass 反激式变换操作 反激式变换器的…

基于springboot的教师工作量管理系统论文

教师工作量管理系统 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了教师工作量管理系统的开发全过程。通过分析教师工作量管理系统管理的不足&#xff0c;创建了一个计算机管理教师工作量管理系统的方案。文章…