PandasDataFrame知识点(巨详细)

15.Pandas:

Pandas是基于NumPy的一种工具,该工具是为解决数据分析任务而创建的,Pandas提供了大量能使我们快速便携地处理数据的功能。Pandas的主要数据结构是Series与DataFrame。

16.Series(可以看作有序的字典)

类似于一维数组的对象,由下面两部分组成:

index:相关数据索引标签

values:一维数组

创建:

  1. 由列表或Numpy数组创建

 默认索引为0到N-1的整数型索引

可修改index:

可通过索引获取值:

  1. 由字典创建

索引:

显示索引:

使用index中的元素作为索引值

使用.loc[]

S

隐式索引:

使用数字下标作为索引值

使用.iloc[]

切片:

隐式切片:左闭右开(数组下标)

显式切片:左闭右闭(索引名)

17.Serise的基本属性

shape:形状

size:长度(元素个数)

index:索引

values:值

name:名字

查看数据

head()查看前几条数据,默认五条

tail()查看后几条数据,默认五条

检测缺失数据

pd.isnull()

pd.notnull()

使用bool值索引过滤数据:

18.Series运算

没有广播机制:

fill_value='  ':填充空值

19.DataFrame

DataFrame是一个表格型的数据结构,可以看作是由Series组成的字典(共用同一个索引)。DataFrame由按照一定顺序排列的多列数据组成。既有行索引index,也有列索引columns,值values

创建:

传递一个字典来创建。DataFrrame以字典的键作为每一列的名称,以字典的值作为每一列。此外DataFrame会自动加上每一行的索引

设置行索引:

设置列索引:

其他创建方式:

20.索引:

DataFrame默认先取列索引。

取行索引:

取某个值:

先取列再取行:

或者df['A'][1],df.A[1],df.A.1

先取列再取行:

或者df.loc('b')[0],df.iloc[1][0],df.iloc[1,0]

21.切片:

索引优先对列进行操作,切片优先对行进行操作

22.DataFrame运算:无广播机制,填充控制用add(,fill_value=)

Series与DataFrame之间的运算

使用Python操作符:以行为单位(参数必须是行)对所有行有效

类似于Numpy中二维数组与一维数组的运算,但可能出现NaN

使用Pandas操作函数:

axis=0:以列为单位操作,参数必须是列,对所有列有效

axis=1,以行为单位操作,参数必须是行,对所有行有效

23.Pandas层次化索引

隐式构造:

最常见的方法是给DataFrame构造函数的index参数传递两个或更多数组

显式构造:

使用数组:

使用元组:

使用笛卡尔积

索引:

显示索引:

隐式索引:

切片

显式切片:

隐式切片:

获取元素:

通过索引:

列索引

行索引:

切片:

行切片:

stack:将列索引变成行索引,默认将最里层的列索引变成行索引

unstack():将行索引变成列索引

24.聚合:

sum():默认是每一列中多行的和

25.生成DataFrame的函数:

数据合并:concat()默认上下合并

左右合并:concat([  , ], axis=1)

忽略行索引,重置索引concat([ , ],ignore_index=True)

使用多层索引:concat([ , ],key= [' ',' ',…]

不匹配级联:默认空白地方补NaN

外连接:补NaN(默认)

内连接:只连接匹配的项

pd.append():追加

pd.merge():类似MySQL中表和表直接的合并,merge需要依据某一共同的行或列来合并,在合并时会自动根据两者相同column名称的那一列,作为key合并,每一列元素的顺序不要求一致

一对一合并:

多对一:

多对多:

key的规范化:使用on=显式指定哪一列为key当2个DataFrame有多列相同时使用

如果没有相同列名,可以使用left_on和right_on来分别指定两个表中的不同作为连接的字段

可以使用行索引作为连接的字段,左连接(left_index=True,right_index=True)

merge合并默认为内连接

外连接补充merge(  , how='outer'),补充NaN

左连接补充merge(  , how='left')

右连接补充merge(  , how='right')

当列冲突时,即多个列名称相同时,需要使用on=来指定哪一个列作为key,配合suffixes指定冲突列名,使用suffixes=自己指定后续

26.缺失值处理

None:

None是Python自带的,是Python中的空对象。None不能参与到任何计算中。

object类型的运算要比innt类型运算慢得多

np.nan:

是浮点型,能参与到计算,结果是NaN

可以使用np.nan*()函数来计算nan,此时会过滤掉nan

Pandas中None与np.nan都视做np.nan

isnull()

notnull()

找列:

all():必须全为ture才是ture

any():任意一个true,为true 作用:尽可能找到有空的列

notnull().all()        找没有空值的列

找行:

isnull().any(axis=1)    找有空的行

notnull().all(axis=1)   找没空的行 

过滤数据:

行过滤:

列过滤:

删除有空的行:

df.dropna()

删除有空的列:

df.dropna(axis=1) 

一行有空的就删除:

df.dropna(how='any')

这一行都是空才删除:

df.dropna(how='all')

修改原数据:

df.dropna(inplace=True)

填充缺失值:

df.fillna(value=填充值,limit=限制填充次数)

df.fillna(method='ffill')向前填充值

df.fillna(method='backfill')向后填充值

df.fillna(method='ffill',axis=1)向左填充值

df.fillna(method='backfill',axis=1)向右填充值

27.重复值处理:

duplicated()检测重复的行

返回元素为布尔类型的Serise对象

每个元素对应一行,如果该行不是第一次出现,则元素为True

只判断subset里的

drop_duplicated()删除重复的行

替换元素:

replace()

28.map():使用lambda,一般用在Series中,不能用于DataFrame

rename():替换索引

reset_index():重置索引

set_index():设置索引

apply()函数:即支持Series,也支持DataFrame

applymap():DataFrame专有的方法,其中的x是每个元素

transform():

Series中:可以执行多项计算

DataFrame:

29.处理重复值和异常值

describe():查看个数、中位数、等值

df.std():求每一列的标准差

df.drop():删除特定索引

df.unique():去重

DataFrame没有unique,只能Series调用

df.query():按条件查询

df.sort_values():根据值排序,ascending=False降序,默认升序

df.sort_index():根据索引排序

df.info():查看数据信息

30.抽样:

使用take()排序

借助np.random.permutation()函数随机排序

无放回抽样:

有放回抽样:

31.常见函数:

32.数组分类处理:

groupby(by=' ')

分组+聚合:

33.加载数据

CSV数据:

保存到csv:df.to_csv('保存名称',sep=',',header='True',index='True') 

sep:分隔符默认是逗号;header:是否保留列索引,index:是否保留行索引

加载csv数据:pd.read_csv('名称',sep=',',header=[0],index_col=0)

index_col:指定第几列作为行索引

header:第几行作为列索引

pd.read_table('名称',sep=',',index_col=0)      分割符默认的为\t,使用必须写sep=‘,’

Excel数据:

保存到excel文件:df.to_excel(('保存名称',sheet_name='表名称',header='True',index='False')

header:是否保留列索引,index:是否保留行索引

读取excel数据:df.read_excel('保存名称',sheet_name='表名称',header=0,names=)

若写为sheet_name=0,则表示读取第一个工作表

names:替换原来的列名

MySQL数据:

保存到MySQL:

先连接MySQL:

create_engine('mysql+pysql://root:root@localhost:3306/db')

mysql+pysql:数据类型+驱动

root:root数据库用户名

localhost:3306:数据库地址和MySQL端口

db:数据库名

df.to_sql(

name='      '        数据库中的表名

con=conn,         数据库连接对象

index=False,        是否保存索引行

if_exists='append'        如果表存在,追加数据

}

读取数据:

pd.read_sql(

sql='  sql语句  '

con=conn,

index_col=' '    指定行索引的类名,可不写

)

34.分箱操作:

分箱操作就是将连续型数据离散化

分箱操作分为等距分箱和等频分箱

s=pd.cut(df.Python,bins=)            bins:分成几组

或:

等频分箱:

35.时间序列:

pd.Timestamp('xxxx-x-x')    时刻数据

pd.Period(''xxxx-x-x',freq=' ')   时期数据

freq:Y:年,M:月,D:日

批量生成时刻数据:

pd.date_range('xxxx.xx.xx',periods=  ,freq='  ')

periods= n:创建n个时间

freq=' '按年/月/日为周期

时间戳索引:

转换方法:

pd.to_datetime()

时间戳===》时间

时间差:

DateOffset( days/hours=   )

时间戳的索引和切片:

索引:

切片:

时间戳:

索引:

切片:

属性:

常用方法:

ts.shift:移动,默认后移两位

ts.asfreq(pd.tseies.offsets.Week/Month()):频率转化为周/月

resample:重采样

时区:

常用的时区:pytz.common_timezones

时区表示:

tz_localize(tz= '   ')

时区转换:

tz_convert(tz='   ')

36.Pandas绘图

Series和DataFrame都有一个生成各类图表的plot方法

Pandas绘图基于Matplotlib

折线图:

曲线图:

若需要变为一行一条线,使用T转职

条形图:

stacked=True:表示堆叠

水平条形图:

直方图:

random随机生成数百分比直方图,调用hist方法

柱高表示数据频数,柱宽表示各数组的组距

参数bins可以设置直方图方柱的个数上限,越大主宽越小,数据分组越细致

设置density参数为True,可以把频率转换为概率

kde图:核密度估计

饼图:

保留百分比:autupct

子图:subplots

散点图:

面积图:

箱型图:

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

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

相关文章

函数图像是如何画出来的(LiveCharts2)

大火的人工智能本质上就是一些简单的函数的组合,比如f(x)kxb,只是可能不只有x,还会x1,x2,…xn,只是维数不同,当维数很多的时候自然就需要方程组才能求解,维数越多自然需要的算力就越多。于是就有…

使用python中的特殊字典——defaultdict

专栏总目录 一、defaultdict说明 在Python中是一个特殊类型的字典,它是collections模块中的一个类defaultdict的实例。这个字典与普通的字典dict不同之处在于,当你试图访问一个不存在的键时,defaultdict会自动创建一个新条目,其值…

9步带你完全了解FPC柔性电路板,一文搞懂什么是FPC!

FPC你所要了解的— 01 FPC软板,是一种神奇的电子元件,它能够随心所欲地弯曲、折叠、缠绕,像一条灵活的蛇,在狭小的空间里穿梭自如。它是怎么做到的呢? 随着社会的不断进步,电子行业的不断更新换代&#xff…

02 USB_JTAG驱动安装

1 概述 一般安装vitis(vivado)的过程中勾选了安装JTAG cable驱动就会默认安装好JTAG驱动,但是如果vivado无法正确识别到JTAG,那么可以试下重新手动安装驱动 2 准备工作 安装驱动前,必须关闭所有的vivado,vitis-sdk并且拔掉USB JTAG 以免导…

【机器学习】用Jupyter Notebook实现并探索单变量线性回归的代价函数以及遇到的一些问题

引言 在机器学习中,代价函数(Cost Function)是一个用于衡量模型预测值与实际值之间差异的函数。在监督学习中,代价函数是评估模型性能的关键工具,它可以帮助我们了解模型在训练数据上的表现,并通过优化过程…

OLLaMA搭建本地大模型

LLMChain是一个简单的链,接受一个提示模板,使用用户输入格式化它并从LLM返回响应。 其中,prompt_template是一个非常关键的组件,可以让你创建一个非常简单的链,它将接收用户输入,使用它格式化提示&#xff…

Mybatis(三) 查询不同数据封装的方式

实体类&#xff1a; 数据库&#xff1a; 1、查询一个实体类对象 /** * 根据用户id查询用户信息* param id * return */User getUserById(Param("id") int id);<select id"getUserById" resultType"User">select * from t_user where id …

【数据结构初阶】单链表经典算法题十二道——得道飞升(上篇)

目录 1、移除元素 2、反转链表 3、链表的中间节点 4、合并两个有序链表 Relaxing Time&#xff01;&#xff01;&#xff01; ———————————————— 天气之子幻 ———————————————— 1、移除元素 思路&#xff1a; 创建一个新链表&#xff0…

<PLC><HMI><汇川>在汇川HMI画面中,如何为UI设置全局样式?

前言 汇川的HMI软件是使用了Qt来编写的,因此在汇川的HMI程序编写过程,是支持使用qt的样式来自定义部件样式的,即qss格式。 概述 汇川的软件本身提供三个系统的style样式,我们可以直接使用,但是,如果系统提供的样式不符合你的需求,那么你可以对其进行修改,或者自己新建…

IC秋招RTL代码合集

一 全加器和半加器 全加器 module full_adder1(input Ai, Bi, Ci,output So, Co);assign So Ai ^ Bi ^ Ci ;assign Co (Ai & Bi) | (Ci & (Ai | Bi)); endmodule module full_adder1(input Ai, Bi, Cioutput So, Co);assign {Co, So} Ai Bi Ci ; endm…

常见CSS属性(二)——浮动

一、浮动简述 浏览器在解析html文档时&#xff0c;正常的顺序是从上往下、从左往右解析。这个正常的解析过程&#xff0c;叫做正常文档流(标准文档流)&#xff0c;而浮动就是使得元素脱离文档流&#xff0c;“浮”在浏览器上。 浮动会使元素脱离文档流&#xff0c;不占位置&…

切换数据失败0x1671分析

1、问题背景 切换双卡数据开关&#xff0c;无法切换成功&#xff0c;且单机必现该问题 2、问题分析 搜索Log发现相关拨号无法建立成功&#xff0c;返回0x1671&#xff0c;无法建立PDN连接。 相关拨号上层未下发相关AT命令&#xff0c;属于上层报错&#xff0c;并非网络问题&…

leetcode日记(53)有效数字

一看题目就感觉好复杂&#xff01;试着写了一下&#xff0c;因为题目描述不清晰所以中途按照错误示例反复修改了很多次&#xff1a; class Solution { public:bool isNumber(string s) {if(s.size()0) return 0;if(s[0]||s[0]-){string sss.substr(1);if(s[1]!&&s[1]!…

【微软蓝屏】微软Windows蓝屏问题汇总与应对解决策略

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

全方位数据管理:一站式爬虫服务解决方案

摘要 面对互联网信息爆炸的时代&#xff0c;如何高效地收集、整理并分析海量数据&#xff0c;成为企业与开发者面临的一大挑战。本文将深入探讨一站式爬虫服务解决方案&#xff0c;揭示如何通过全方位数据管理策略&#xff0c;助力企业轻松驾驭大数据海洋&#xff0c;实现数据…

【教程】微信扫描二维码进入小程序指定页面并携带参数

功能描述 打开微信扫一扫&#xff0c;扫描产品上的二维码&#xff0c;弹出小程序&#xff0c;跳到“邀请用户”页面。解析二维码中的参数&#xff0c;自动填充到页面中的“邀请码”输入框。 操作步骤 首先&#xff0c;要到微信公众平台对扫普通链接二维码打开小程序功能进行配…

在WPF中使用WebView2详解

Microsoft Edge WebView2 Microsoft Edge WebView2 控件允许在本机应用中嵌入 web 技术(HTML、CSS 以及 JavaScript)。 WebView2 控件使用 Microsoft Edge 作为绘制引擎&#xff0c;以在本机应用中显示 web 内容。 使用 WebView2 可以在本机应用的不同部分嵌入 Web 代码&…

加拿大云手机:进入加拿大市场的最佳工具

随着全球电商和社交媒体的迅猛发展&#xff0c;越来越多的卖家希望进入国际市场&#xff0c;以扩大其业务版图。加拿大作为北美市场的重要一环&#xff0c;具有巨大的商业潜力。然而&#xff0c;对于想要进入加拿大市场的卖家而言&#xff0c;面临的挑战也不少。加拿大云手机作…

数据中台 | 快速了解数据治理的关键要素-元数据

01.什么是元数据&#xff1f; 元数据(Metadata)又称中介数据、中继数据&#xff0c;是描述数据的数据(data about data)&#xff0c;主要是描述数据属性的信息&#xff0c;用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。 概念通常是专业且难懂的&#xff0c;…

神经网络拟合任何函数的数学原理

神经网络拟合任何函数的数学原理 神经网络拟合能力的数学表达 神经网络之所以理论上可以拟合任何函数&#xff0c;其核心在于其多层的结构和非线性的激活函数。通过增加层数和神经元数量&#xff0c;神经网络可以逼近复杂的函数关系。这一过程可以通过万能近似定理&#xff08…