pandas的一些函数

news2024/11/24 20:50:36

1、pd.read_csv ()

读取csv文件

import pandas as pd

df = pd.read_csv('Popular_Baby_Names.csv')

df = pd.read_csv('Popular_Baby_Names.csv', sep=';', header=0, index_col=0, skiprows=5, na_values='N/A')##读取CSV文件data.csv,使用;作为分隔符,第一行作为标题,第一列作为索引,跳过前5行,将N/ a替换为NaN

2、df.describe ()

df.describe()方法用于生成DataFrame的各种特征的汇总统计信息。它返回一个新的DataFrame,其中包含原始DataFrame中每个数值列的计数、平均值、标准差、最小值、第25百分位、中位数、第75百分位和最大值。

df.describe()

df.describe(include='all')  # include all columns

df.describe(exclude='number') # exclude numerical columns

3、df.info ()

df.info()可以获得DataFrame的简明摘要,包括每列中非空值的数量、每列的数据类型以及DataFrame的内存使用情况。

df.info()

4、df.iloc ()

iloc()函数用于根据索引选择行和列

df.iloc[起始行:最终行, 起始列:最终列]

5、df.loc ()

loc()函数用于根据DataFrame中基于标签的索引选择行和列。它用于根据基于标签的位置选择行和列

df.loc[:, ['Year of Birth', 'Gender']]####选取'Year of Birth', 'Gender'列

6、df.assign ()

.assign()函数用于根据现有列的计算向DataFrame添加新列。它允许您在不修改原始数据的情况下添加新列。该函数会返回一个添加了列的新DataFrame。

df_new = df.assign(count_plus_5=df['Count'] + 5)####df.assign()被用来创建一个名为'count_plus_5'的,值为count列的值 + 5的新列。

7、df.query ()

.query()函数可以根据布尔表达式过滤数据。可以使用类似于SQL的查询字符串从DataFrame中选择行。该函数返回一个新的DataFrame,其中只包含满足布尔表达式的行。

df_query = df.query('Count > 30 and Rank < 20')

df_query = df.query("Gender == 'MALE'")

8、df.sort_values ()

.sort_values()函数可以按一列或多列对数据进行排序。它根据一个或多个列的值按升序或对DataFrame进行排序。该函数返回一个按指定列排序的新DataFrame。

df.sort_values(by='##',axis=0,ascending=True, inplace=False, na_position='last')

by:指定列名(axis=0或’index’)或索引值(axis=1或’columns’)

axis:若axis=0或’index’,则按照指定列中数据大小排序;若axis=1或’columns’,则按照指定索引中数据大小排序,默认axis=0

ascending:是否按指定列的数组升序排列,默认为True,即升序排列

Inplace是否用排序后的数据集替换原来的数据,默认为False,即不替换

na_position {‘first’,‘last’}设定缺失值的显示位置

9、df.sample ()

.sample()函数可以从数据帧中随机选择行。它返回一个包含随机选择的行的新DataFrame。该函数采用几个参数,可以控制采样过程。

df.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)

n:这是一个可选参数, 由整数值组成, 并定义生成的随机行数。

frac:它也是一个可选参数, 由浮点值组成, 并返回浮点值*数据帧值的长度。不能与参数n一起使用。

replace:由布尔值组成。如果为true, 则返回带有替换的样本。替换的默认值为false。

权重:它也是一个可选参数, 由类似于str或ndarray的参数组成。默认值”无”将导致相等的概率加权。

如果正在通过系列赛;它将与索引上的目标对象对齐。在采样对象中找不到的权重索引值将被忽略, 而在采样对象中没有权重的索引值将被分配零权重。

如果在轴= 0时正在传递DataFrame, 则返回0。它将接受列的名称。

如果权重是系列;然后, 权重必须与被采样轴的长度相同。

如果权重不等于1;它将被标准化为1的总和。

权重列中的缺失值被视为零。

权重栏中不允许无穷大。

random_state:它也是一个可选参数, 由整数或numpy.random.RandomState组成。如果值为int, 则为随机数生成器或numpy RandomState对象设置种子。

axis:它也是由整数或字符串值组成的可选参数。 0或”行”和1或”列”。

10、df.isnull ()

isnull()方法返回一个与原始DataFrame形状相同的DataFrame,通过True或False值,指示原始DataFrame中的每个值是否缺失。缺失的值NaN或None,在结果的DataFrame中将为True,而非缺失的值将为False。

df.isnull()

11、df.fillna ()

fillna()方法用于用指定的值或方法填充DataFrame中的缺失值。默认情况下,它用NaN替换缺失的值,也可以指定一个不同的值来代替

df.fillna(value = None,method = None,axis = None,inplace = False,limit = None,downcast = None)

参数:

values: dict, Series, or DataFrame,用于替换空值的值,该值不能是list,如果指定某列,则会是字典的形式

method:{‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, default None,填充方法(向下填充,还是向上,和replace的用法一致)

axis:{0 or ‘index’, 1 or ‘columns’},填充的方向

inplace:bool, default False,if True means 修改原文件

limit:int, default None,限制填充个数

downcast:dict, default is None

12、df.dropna ()

df.dropna()可以从DataFrame中删除缺失值或空值。它从DataFrame中删除至少缺失一个元素的行或列。可以通过调用df.dropna()删除包含至少一个缺失值的所有行。

df.dropna(axis=0, how='any', thresh=None, subset=["列名1","列名2"], inplace=False)

axis=0或axis='index’删除含有缺失值的行,

axis=1或axis='columns’删除含有缺失值的列,

how='all’时表示删除全是缺失值的行(列)

how='any’时表示删除只要含有缺失值的行(列)

thresh=n表示保留至少含有n个非na数值的行

subset定义要在哪些列中查找缺失值

inplace表示直接在原DataFrame修改

13、df.drop ()

df.drop()可以通过指定的标签从DataFrame中删除行或列。它可以用于删除一个或多个基于标签的行或列。

你可以通过调用df.drop()来删除特定的行,并传递想要删除的行的索引标签,并将axis参数设置为0(默认为0)。

df_drop = df.drop(0)  ###删除DataFrame的第一行。

df_drop = df.drop([0,1]) ####删除DataFrame的第一行和第二行

过传递想要删除的列的标签并将axis参数设置为1来删除列:

df_drop = df.drop(['Count', 'Rank'], axis=1)  ###删除列Count和Rank

14、df.groupby ()

df.groupby()用于根据一个或多个列对DataFrame的行进行分组。并且可以对组执行聚合操作,例如计算每个组中值的平均值、和或计数。

df.groupby()返回一个GroupBy对象,然后可以使用该对象对组执行各种操作,例如计算每个组中值的和、平均值或计数。

grouped = df.groupby('Gender')

print(grouped.mean())    ####打印平均值

print(grouped.sum())     ####打印和

15、df.transpose ()

df.transpose()用于转置DataFrame的行和列,这意味着行变成列,列变成行。

也可以使用df上的T属性来实现。df.T和df.transpose()是一样的。

df_transposed = df.transpose()  ###转换行列

df_transposed = df.T  ###转换行列

16、df.merge()

pandas的merge方法是基于共同列,将两个dataframe连接起来。merge方法的主要参数:how,on

df3 = pd.merge(df1,df2,how='inner',on='alpha')# 基于共同列alpha的内连接

df5 = pd.merge(df1,df2,how='outer',on='alpha')# 基于共同列alpha的外连接

df5 = pd.merge(df1,df2,how='left',on='alpha')# 基于共同列alpha的左连接

df6 = pd.merge(df1,df2,how='right',on='alpha')# 基于共同列alpha的右连接

df7 = pd.merge(df1,df2,on=['alpha','beta'],how='inner')# 基于共同列alpha和beta的内连接

df8 = pd.merge(df1,df2,on=['alpha','beta'],how='right')# 基于共同列alpha和beta的右连接

df9 = pd.merge(df1,df2,how='inner',left_on='beta',right_index=True)# 基于df1的beta列和df2的index连接

设置参数suffixes以修改除连接列外相同列的后缀名。

df9 = pd.merge(df1,df2,how='inner',left_on='beta',right_index=True,suffixes=('_df1','_df2'))# 基于df1的alpha列和df2的index内连接

17、 df.join()

join方法是基于index连接dataframe,merge方法是基于column连接,连接方法有内连接,外连接,左连接和右连接,与merge一致。

df1 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3', 'K4', 'K5'], 'A': ['A0', 'A1', 'A2', 'A3', 'A4', 'A5']})

df2 = pd.DataFrame({'key': ['K0', 'K1', 'K2'],'B': ['B0', 'B1', 'B2']})

df3 = df1.join(df2,lsuffix='_caller', rsuffix='_other',how='inner') #  lsuffix和rsuffix设置连接的后缀名

df3 = df1.set_index('key').join(df2.set_index('key'),how='inner')  # 基于key列进行连接

18、concat()

concat方法是拼接函数,有行拼接和列拼接,默认是行拼接,拼接方法默认是外拼接(并集),拼接的对象是pandas数据类型。

(1)、series类型的拼接方法

df1 = pd.Series([1.1,2.2,3.3],index=['i1','i2','i3'])

df2 = pd.Series([4.4,5.5,6.6],index=['i2','i3','i4'])

df3 = pd.concat([df1,df2])  # 行拼接

行拼接若有相同的索引,为了区分索引,我们在最外层定义了索引的分组情况。

pd.concat([df1,df2],keys=['fea1','fea2'])  # 对行拼接分组

列拼接

默认以并集的方式拼接:

pd.concat([df1,df2],axis=1)  # 列拼接,默认是并集

以交集的方式拼接:

pd.concat([df1,df2],axis=1,join='inner')   # 列拼接的内连接(交)

对指定的索引拼接:

pd.concat([df1,df2],axis=1,join_axes=[['i1','i2','i3']])   # 指定索引[i1,i2,i3]的列拼接

(2)、 dataframe类型的拼接方法

行拼接

df1 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3', 'K4', 'K5'],

'A': ['A0', 'A1', 'A2', 'A3', 'A4', 'A5']})

df2 = pd.DataFrame({'key': ['K0', 'K1', 'K2'],

'B': ['B0', 'B1', 'B2']})

df3 = pd.concat([df1,df2])  # 行拼接

 

pd.concat([df1,df2],axis=1)    # 列拼接

19、df.rename ()

df.rename()可以更改DataFrame中一个或多个列或行的名称。可以使用columns参数更改列名,使用index参数更改行名。

df_rename = df.rename(columns={'Count': 'count', 'Rank':'rank'}) ##将Count列名改为count,Rank列名改为rank

df_rename = df.rename(index={0:'first',1:'second',2:'third'})###将第1列列名改为first,第2列改为second,第3列改为third

20、df.to_csv ()

df.to_csv()可以将DataFrame导出到CSV文件。与上面的Read_csv作为对应。调用df.to_csv()将DataFrame导出到CSV文件:

df.to_csv('data.csv')

可以通过传递sep参数来指定CSV文件中使用的分隔符。默认情况下,它被设置为“,”。

df.to_csv('path/to/data.csv', sep='\t')

也可以通过将列名列表传递给columns参数来只保存DataFrame的特定列,通过将布尔掩码传递给索引参数来只保存特定的行。

df.to_csv('path/to/data.csv', columns=['Rank','Count'])

还可以使用index参数指定在导出的CSV文件中包含或不包含dataframe的索引。

df.to_csv('path/to/data.csv', index=False)

使用na_rep参数将导出的CSV文件中缺失的值替换为指定的值。

df.to_csv('path/to/data.csv', na_rep='NULL')

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

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

相关文章

idea 一直卡在maven正在解析maven依赖

修改maven Importing的jvm参数 -Xms1024m -Xmx2048m

OpenAI开发者大会之后,当何去何从?

简介 过往总结 ​产品升级 GPT-4 Turbo Agent化 此间的未来 定制GPT GPT商店 Assistants API 总结与思考 简介 此次发布会简单总结如下。 1. 发布GPT-4 Turbo&#xff1a; 更长。支持128K上下文输入&#xff0c;标准GPT-4是8K版本&#xff0c;之前升级出了32K版本 更…

kubernetes (k8s)的使用

一、kubernetes 简介 谷歌2014年开源的管理工具项目&#xff0c;简化微服务的开发和部署。 提供功能&#xff1a;自愈和自动伸缩、调度和发布、调用链监控、配置管理、Metrics监控、日志监控、弹性和容错、API管理、服务安全等。官网&#xff1a;https://kubernetes.io/zh-cn…

5-爬虫-打码平台、打码平台自动登录打码平台、selenium爬取京东商品信息、scrapy介绍安装、scrapy目录结构

1 打码平台 1.1 案例 2 打码平台自动登录打码平台 3 selenium爬取京东商品信息 4 scrapy介绍安装 5 scrapy目录结构 1 打码平台 # 1 登录某些网站&#xff0c;会有验证码---》想自动破解-数字字母&#xff1a;python模块&#xff1a;ddddocr-计算题&#xff0c;成语题&#xf…

物联网AI MicroPython学习之语法 ucollections集合和容器类型

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; ucollections 介绍 ucollections 模块用于创建一个新的容器类型&#xff0c;用于保存各种对象。 接口说明 namedtuple - 创建一个新namedtuple容器类型 函数原型&#xff1a; 创建一个具有特定名称和一组…

rviz添加qt插件

一、增加rviz plugin插件 资料&#xff1a;http://admin.guyuehome.com/42336 https://blog.51cto.com/u_13625033/6126970 这部分代码只是将上面两个链接中的代码整合在了一起&#xff0c;整合在一起后可以更好的理解其中的关系 1、创建软件包 catkin_create_pkg rviz_tel…

MySQL数据库的各种锁介绍以及它们之间的关系

MySQL数据库的各种锁 表级锁、行级锁、间隙锁、意向锁、记录锁&#xff0c;悲观锁和乐观锁 表级锁包含表级共享锁和表级排他锁行级锁包含行级共享锁和行级排他锁间隙锁是行级锁的一种特殊锁&#xff0c;锁定既定列的范围值意向锁是事务对表中某些行或者范围发起的一项操作&am…

Hbuiderx链接到夜神模拟器(DCloud数字天堂)

赞助 DCloud 即数字天堂&#xff08;北京&#xff09;网络技术有限公司是 W3C成员及 HTML5中国产业联盟 发起单位 Hbuiderx切换使用夜神模拟器自带的ADB.exe链接到夜神模拟器 同步资源失败&#xff0c;未得到同步资源的授权&#xff0c;请停止运行后重新运行&#xff0c;并注意…

数据的读取和保存-MATLAB

1 序言 在进行数据处理时&#xff0c;经常需要写代码对保存在文件中的数据进行读取→处理→保存的操作&#xff0c;流程图如下&#xff1a; 笔者每次在进行上述操作时&#xff0c;都需要百度如何“选中目标文件”以及如何“将处理好的数据保存到目标文件中”&#xff0c;对这一…

本地域名 127.0.0.1 / localhost

所谓本地域名就是 只能在本机使用的域名 &#xff0c;一般在开发阶段使用。 编辑文件 C:\Windows\System32\drivers\etc\hosts。 127.0.0.1 www.baidu.com如果修改失败,可以修改该文件的权限。 原理&#xff1a; 在地址栏输入 域名 之后&#xff0c;浏览器会先进行 DNS…

SpringBoot定时任务打成jar 引入到新的项目中后并自动执行

一、springBoot开发定时任务 ①&#xff1a;连接数据库实现新增功能 1. 引入依赖 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional> </dependency> <dependen…

Python高级语法----深入理解Python协程

文章目录 什么是协程?Python中的协程基本示例协程和事件循环总结Python协程是一种非常强大的并发编程概念,让你能够高效地处理多任务。协程在Python中的使用已经变得越来越流行,特别是在异步编程中。本文将用通俗易懂的语言来介绍协程的概念,并提供实际的代码示例和执行结果…

软件测试怎么测别的类的main方法

软件测试怎么测别的类的main方法 🍎如果软测开发者题目待测类里有main方法,我们如何测? 可以采取以下步骤: 了解main函数的功能:首先,你需要了解这个main函数的功能和预期的输出。这样你才能设计出合适的测试用例。设计测试用例:设计测试用例时,需要考虑各种可能的输…

【Linux】了解文件的inode元信息,以及日志分析

目录 一、inode表结构&#xff0c;以及元信息 1、了解inode信息有哪些 2、关于inode表的说明 Linux中访问文件的过程&#xff1a; 3、硬连接与软连接的区别&#xff0c;&#xff08;请看前面&#xff0c;写过的&#xff09; 二、文件系统的备份与恢复 三、几种常见的日志…

【uniapp】签名组件,兼容vue2vue3

网上找了个源码改吧改吧&#xff0c;清除了没用的功能和兼容性&#xff0c;基于uniapp开发的 样子 vue2 使用方法&#xff0c;具体的可以根据业务自行修改 <signature ref"signature" width"100%" height"410rpx"></signature>confi…

C函数的反汇编

fromelf --bin --outputxxx.bin xxx.axf fromelf --text -a -c --outputxxx.dis xxx.axf去Linker下面复制该目录下的xxx.axf xxx.dis名字随便改&#xff0c;保证后缀是dis就行 然后确认&#xff0c;进行编译 就生成了task.dis文件

【MySQL】库操作和表操作

文章目录 一、库操作1. 创建数据库2. 数据库的编码问题查看系统默认支持的字符集查看数据库支持的字符集查看数据库支持的字符集校验规则校验规则对数据库的影响 3. 操纵数据库查看数据库显示创建语句修改数据库删除数据库 4. 数据库的备份和恢复数据库的备份数据库的恢复表的删…

从业务到软件架构——软件建模

一、问题 1.架构到底是什么&#xff1f;架构和业务之间到底什么关系&#xff1f; 2.好的架构的设计出发点是什么&#xff1f;好的架构应该是什么样的&#xff1f; 作为一个计算机领域的词汇&#xff0c;架构的定义是&#xff1a;有关软件整体结构与组件的抽象描述&#xff0c…

ubuntu22.04使用VNC链接服务器远程桌面

一、本地VNC客户端 本地主要需要一个VNC客户端&#xff0c;用来远程连接服务器端的VNC&#xff08;在不安装Web版本VNC情况下&#xff09;。VNC客户端下载地址&#xff1a; VNC客户端下载 二、安装Xfce桌面环境 在远程服务器控制台中安装Xfce桌面&#xff08;这个桌面环境比…

redis持久化和Redis事务

一)Redis持久化之RDBredisDataBase: 什么是持久化: 1)持久性:和持久化说的是同一回事&#xff0c;衡量持久性的前提是重启进程或者是重启主机以后数据是否还存在 持久:把数据存储在硬盘上&#xff0c;那么就是持久性 不持久:把数据存储在内存中 2)redis是一个内存级别的数据库&…