pandas 合并所有列_Python学习:Pandas库+练习资料

pandas包含数据结构和数据处理工具的设计使得在Python中进行数据清洗和分析非常快捷。pandas经常是和NumPy,Scipy以及数据可视化工具matplotlib一起使用的。pandas支持大部分NumPy语言风格的数组计算,但最大的不同在于pandas是用于处理表格型或异质型数据的。而NumPy更适合处理同质型的数值类数组数据。

在第一次学习Pandas的过程中,你会发现你需要记忆很多的函数和方法。所以在这里我们汇总一下Pandas官方文档中比较常用的函数和方法,以方便大家记忆。

df:任意的Pandas DataFrame对象
s: 任意的Pandas Series对象

一、关键包导入:

  • import pandas as pd
  • import numpy as np

二、导入数据:

  • pd.read_csv(filename) 逗号是默认分隔符
  • pd.read_table(filename) 制表符('')是默认分隔符
  • pd.read_excel(filename) 读取Excel数据
  • pd.read_sql(query, connection_object):从SQL表/库导入数据
  • pd.read_json(json_string):读JSON格式
  • pd.DataFrame(dict):从字典对象导入数据,Key是列名,Value是数据

pd.read_csv(flie,header=,sep=,na_values=,skiprows=,nrows=,chunksize=,index_col=,names=)

  • header:用作列名的行号,默认是0(第一行),如果没有列名的话,应该是None
  • sep:用于分隔每行字段的字符序列或是正则表达式
  • na_values:需要用NA替换的值序列
  • skiprows:从文件开头处起,需要跳过的行数或行号列表
  • nrows:从文件开头处读入的行数
  • chunksize:用于迭代的块大小
  • index_col:用作结果中行索引的列号或列名,可以是一个单一的名称/数字,也可以是一个分层索引
  • names:结果的列名列表

三、导出数据:

  • df.to_csv(filename):导出数据到CSV文件
  • df.to_excel(filename):导出数据到Excel
  • df.to_sql(table_name, connection_object):导出数据到SQL表
  • df.to_json(filename):以Json格式导出数据到文本文件

四、创建对象

  • obj=pd.Series([4,7,-5],index=['a','b','c'])
  • obj=pd.DataFrame(data,columns=['year'],index=['one'])

五、查看数据:

  • df.head(n):查看DataFrame对象的前n行
  • df.tail(n):查看DataFrame对象的最后n行
  • df.info():查看索引、数据类型和内存信息
  • df.shape:查看行数和列数
  • df.describe():查看数值型列的汇总统计
  • df.dtypes:每一列数据的格式
  • df.isnull():查看某一列空值
  • df.columns :查看列名称
  • df.values:查看数据表的值
  • df['B'].unique():查看某一列的唯一值
  • s.value_counts():查看Series对象的唯一值和计数
  • df.apply(pd.value_counts).fillna(0):查看DataFrame对象中每一列的唯一值和计数,并对NA填充0

六、数据选取:

  • df[col]:根据列名,并以Series的形式返回列
  • df[[col1, col2]]:以DataFrame形式返回多列
  • df[n:m]:以DataFrame形式返回n到m-1行
  • df.loc[val]:根据标签选择单行或多行
  • df.loc[:,val]:根据标签选择单列或多列
  • df.loc[val1,val2]:同时选择行和列的一部分
  • df.iloc[where]:根据整数位置选择单行或多行
  • df.iloc[:,where]:根据整数位置选择单列或多列
  • df.iloc[where_i,where_j]:根据整数位置选择行和列

*loc切片是首尾闭区间;iloc切片是首闭尾开

七、数据清洗:

  • df.columns = ['a','b','c']:重命名列名
  • pd.isnull():检查DataFrame对象中的空值
  • pd.notnull():检查DataFrame对象中的非空值
  • df.dropna():删除所有包含空值的行
  • df.dropna(axis=1):删除所有包含空值的列
  • df.dropna(axis=1,thresh=n):删除所有小于n个非空值的行
  • df.fillna(x):用x替换DataFrame对象中所有的空值
  • s.astype(float):将Series中的数据类型更改为float类型
  • s.replace(1,'one'):用‘one’代替所有等于1的值
  • s.replace([1,3],['one','three']):用'one'代替1,用'three'代替3
  • df.rename(columns=lambda x: x + 1):批量更改列名
  • df.rename(columns={'old_name': 'new_ name'}):选择性更改列名
  • df.set_index('column_one'):更改索引列
  • df.rename(index=lambda x: x + 1):批量重命名索引
  • df.drop_duplicates() :删除后出现的重复值
  • df.drop_duplicates(keep='last'):删除先出现的重复值
  • df.drop_duplicates(['k1']) :基于k1列删除重复值
  • df['city']=df['city'].map(str.strip)
  • pd.cut(data,4) :分箱

八、数据处理:

  • df[df[col] > 0.5]:选择col列的值大于0.5的行
  • df.sort_values(col1):按照列col1排序数据,默认升序排列
  • df.sort_values(col2, ascending=False):按照列col1降序排列数据
  • df.sort_values([col1,col2], ascending=[True,False]):先按列col1升序排列,后按col2降序排列数据
  • df.groupby(col):返回一个按列col进行分组的Groupby对象
  • df.groupby([col1,col2]):返回一个按多列进行分组的Groupby对象
  • df.groupby('city')['id'].count() :按城市对id字段进行计数
  • df.groupby('city')['price'].agg([np.sum, np.mean]):对city字段进行汇总,并分别计算prince的合计和均值
  • df.pivot_table(index=col1,values=[col2,col3], aggfunc=max):创建一个按列col1进行分组,并计算col2和col3的最大值的数据透视表
  • df.groupby(col1).agg(np.mean):返回按列col1分组的所有列的均值
  • data.apply(np.mean):对DataFrame中的每一列应用函数np.mean
  • data.apply(np.max,axis=1):对DataFrame中的每一行应用函数np.max

九、数据合并:

  • df1.append(df2):将df2中的行添加到df1的尾部
  • pd.concat([df1, df2],axis=1):将df2中的列添加到df1的尾部
  • df1.join(df2,on=col1,how='inner'):对df1的列和df2的列执行SQL形式的join
  • pd.merge(df1,df2,on='key') : 按指定连接键合并

*pd.concat():join接收inner或outer。表示其他轴向上的索引是按交集(inner)还是并集(outer)进行合并。默认为outer。当axis=1的时候,concat做行对齐,然后将不同列名称的两张或多张表合并。当两个表索引不完全一样时,可以使用join参数选择是内连接还是外连接。在内连接的情况下,仅仅返回索引重叠部分。在外连接的情况下,则显示索引的并集部分数据,不足的地方则使用空值填补。axis=0时同理

*df.append():append方法也可以用于纵向合并两张表。但是append方法实现纵向表堆叠有一个前提条件,那就是两张表的列名需要完全一致

*pd.merge()常用参数:

a35ad0bca052cad2b0cfd8f0c0325989.png

十、数据统计:

  • df.describe():查看数据特征的汇总统计
  • df.mean():返回所有列的均值
  • df.corr():返回列与列之间的相关系数
  • df.count():返回每一列中的非空值的个数
  • df.max():返回每一列的最大值
  • df.min():返回每一列的最小值
  • df.idxmin():返回最小值所在的索引标签
  • df.argmin():返回最小值所在的索引位置
  • df.median():返回每一列的中位数
  • df.std():返回每一列的标准差

*传入axis=’columns'或者axis=1,则会对一行上各列值进行操作。

除非整个切片都是NA,否则NA值是自动被排除的,可以通过禁用skipna来实现不排除NA值:skipna=False


文末福利:

网上可以搜到大量的Pandas教程和官方文档,但没有简单的方法来练习。教程是很好的资源,但要付诸实践。只有实践,才能更好的加深学习。针对pandas库函数的一些常用用法,本站搜索到了一些关于Pandas的练习题含答案,每一个类型包含了相应的练习数据、题目、注释以及解答等4个文件。大家可以根据自己的薄弱点针对性训练,相信一定能有所提高!

点赞,评论,转发,后台回复【Pandas学习】即可获得这些练习题资料!

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

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

相关文章

zabbix自动发现主机并加入组绑定模板

在被监控主机多的情况下,怎样将这些主机加入zabbix server进行监控呢?下面将介绍下zabbix自动发现功能 1、创建自动发现规则 创建“规则名称,配置ip范围及检查方式”,点击“增加”,完成自动发现规则的创建 2、加入组和…

kotlin 用协程做网络请求_中国电信营业厅: 感受 Kotlin 的 quot;加速度quot;

"我们手上是一个很成熟的项目,所以毫无疑问需要保留 Java 代码,目前只会在新开发的页面中使用 Kotlin,并已经感受到了它带来的便利。随着功能的迭代,我们相信更多的功能会转而使用 Kotlin。"—— 付迎鑫,电信…

拖动验证码插件

拖动验证码插件 效果图: 在验证前,提交弹出验证失败,验证后弹出验证成功。 文件结构: css: #drag{ position: relative;background-color: #e8e8e8;width: 300px;height: 34px;line-height: 34px;text-align: center; …

matlab padarray函数零,matlab padarray函数

1padarray功能:填充图像或填充数组。用法:B padarray(A,padsize,padval,direction)A为输入图像,B为填充后的图像,padsize给出了给出了填充的行数和列数,通常用[r c]来表示。padval表示填充方法。它的具体值和描述如下…

[知了堂学习笔记]_网络基础知识_1.OSI参考模型(网络七层协议)

OSI参考模型是国际标准化组织ISO制定的模型,把计算机与计算机之间的通信分成七个互相连接的协议层,如图: 1.1各层功能 1、物理层 最底层是物理层,这一次负责传送比特流,它从第二层数据接收数据帧,并将帧的结…

Linux版本配置环境变量,如何linux环境下配置环境变量过程图解

jdk下载地址:在linux环境下的root同级目录下配置software目录将下载好的jdk上传到software文件夹里面(我使用的操作软件是)到software这个目录下.输入命令:cd /software输入命令:ll就可以看到我们的jdk包解压文件解压命令 tar xzvf jdk-8u111-linux-x64.tar.gz解压之…

奔腾双核linux服务器,Dell推出双核心奔腾服务器

来自业内的消息,Dell近日推出了一台采用Intel双核心 Pentium D的服务器,这将给小型服务器带来更强的运算能力。Dell PowerEdge SC430 主要面向小型企业客户,价格在499美元起。相比PowerEdge SC420,Dell为 PowerEdge SC430 装配了两…

EasyPlayerPro Windows流媒体播放器(RTSP/RTMP/HTTP/HLS/File/TCP/RTP/UDP都能播)发布啦

EasyPlayerPro简介 EasyPlayerPro是一款全功能的流媒体播放器,支持RTSP、RTMP、HTTP、HLS、UDP、RTP、File等多种流媒体协议播放、支持本地文件播放,支持本地抓拍、本地录像、播放旋转、多屏播放等多种功能特性,核心基于ffmpeg,稳…

ALSA声卡笔记2---ASoC驱动框架

1、简单了解一下ASOC 在嵌入式系统里面的声卡驱动为ASOC(ALSA System on Chip) ,它是在ALSA 驱动程序上封装的一层 分为3大部分,Machine,Platform和Codec ,三部分的关系如下图所示:其中Machine是指我们的…

python之路_自定义属性、json及其他js补充

一、自定义属性 我们知道,在前端页面渲染的过程中,我们可能会需要用到一些后端传来的参数,这种参数的获取我们一般是通过模板语言渲染得到。但是当这些参数是在js文件中被用到(js代码若是单独以文件形式被引用,模板语言…

C语言打印日历总结报告,C语言打印日历

应同学的要求,写了个日历,输入年份,输出12个月份的日历表,代码如下 :#includebool isLeap(int year){if((year%40 && year%100!0) || (year%4000))return 1;elsereturn 0;}void printCalendar(int year){int d…

java中二进制怎么说_面试常用:说清楚Java中synchronized和volatile的区别

回顾一下两个关键字:synchronized和volatile1、Java语言为了解决并发编程中存在的原子性、可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如synchronized、volatile、final、concurren包等。2、synchronized通过加锁的方式&#…

qt用c语言编程 pdf下载文件,Qt 使用Poppler实现pdf阅读器的示例代码

开发环境 Qt5.5.1、Qt Creator 3.5.1Qt实现pdf阅读器和MFC实现pdf阅读器,其实原理都是差不多的。注意:这个是MinGW版本的Qt,也就是运行在GCC环境下的库,里面只包含 *.dll 和 *.a 。如果是Vistual Studio版本的Qt ,那么…

C语言工厂方法模式,工厂函数模式 (C语言实现)

工厂模式属于创建型模式,大致可以分为三类,简单工厂模式、工厂方法模式、抽象工厂模式。二. 工厂方法模式所谓工厂方法模式,是指定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子…

光绘文件 c语言 解析,AltiumDesigner输出光绘文件

1、钻孔信息生成设置打开PCB文件,放置钻孔位图符号对应的孔大小的列表:切换到DrillDrawing层放置字符串,Place->string(PS),此时按Tab键,在出现的Text文本框中点击下拉箭头,选择.Legend,OK。…

曼哈顿距离最小生成树与莫队算法(总结)

曼哈顿距离最小生成树与莫队算法(总结) 1 曼哈顿距离最小生成树 曼哈顿距离最小生成树问题可以简述如下: 给定二维平面上的N个点,在两点之间连边的代价为其曼哈顿距离,求使所有点连通的最小代价。 朴素的算法可以用O(N…

功能引导 android,Flutter实现App功能引导页

App功能介绍页,主要是由介绍app功能的几张图片和当前页指示符组成,如下效果我们来一步一步实现上面的界面,左右滑动切换显示功能页,这个可以通过PageView来实现,底部的指示符半透明覆盖在PageView上,开发过Android同学知道可以用Framelayout布局来实现&a…

ocp oracle 考试报名_获得Oracle认证对拓展职业前景的影响

知识就是力量通过考试和考试成绩固然很重要,但您在学习过程中所掌握的知识才是您职业成功的坚实基础。在备考过程中,获得的知识和经验才是您真正的财富。Oracle Certified Associate (OCA):专员级别的认证能够证明学员具备基本技能&#xff0…

mac android 录屏软件下载,苹果录屏app下载 苹果录屏 for Android V2.1.3 安卓手机版 下载-脚本之家...

苹果录屏是一款不错的手机录屏软件,该软件能帮助你录制流畅清晰视频,实现屏幕内容实时同步录制,录制视频流畅清晰不卡顿,需要的朋友可以下载使用。应用介绍苹果录屏,是一款免费屏幕录制软件,能帮助你录制流…

火箭技术术语_仿真优化火箭发动机 3D 打印制造工艺

台湾工业技术研究院(ITRI)为台湾创新空间(TiSPACE)提供增材制造(也称 3D 打印技术)服务,包括原始设计制造、重新设计和仿真等。TiSPACE 的固液火箭发动机中使用的燃料喷射器组件的 3D 打印过程为:首先,激光将第一层粉末熔化并融合到构建板上&…