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)    制表符('\t')是默认分隔符

  • 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()常用参数:

5ff2ba938f6f2c672eae85770eae9f10.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学习】即可获得这些练习题资料

一路同行

ID : 进阶的CVCoder

一起寻找生命中的光.....

beec194b16e2f31c4c899ca6d6b963c4.png

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

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

相关文章

linux操作系统桌面应用与管理第2版,linux操作系统桌面应用与管理(62页)-原创力文档...

红旗Linux;任务在项目中的位置;任务描述;任务准备-明确学习目标;任务准备-任务1分解;任务1-1实施;任务1-1实施;任务1-1实施;最小化系统安装;最小化系统安装;任务1-2 通过yum定制系统实施;任务1-2 通过yum定制系统实施;1)yum了解;2)yum的安装;2)yum的安装…

python 请在微信客户端打开_完美解决 请在微信客户端打开链接

完美解决 请在微信客户端打开链接背景描述相信有模拟微信页面请求的测试都有看到过这个页面,简单点说就是爬虫爬微信页面,进行回放的时候会出现这个页面。大概在1年前,专门安排了一个人去解决这个技术问题,遗憾的是当时没有找到解…

进程和多线程

一、进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ、Xcode,系统就会分别启动2个进程 通过“活动监视器”可以查看Mac系统中所开启的进程 2.什么是线…

CUMT--Java复习--网络编程

目录 一、Java网络API 1、InetAddress类 2、URL类 3、URLConnection类 4、URLDecoder类和URLEncoder类 二、基于TCP的网络编程 1、Socket类 2、ServerSocket类 三、网络通信过程 一、Java网络API Java中有关网络方面的功能都定义在java.net中。 1、InetAddress类 Jav…

windows dc linux,active-directory – Linux AD集成,使用Windows Server 2012 DC时无法登录

我正在尝试将我的CentOS 6.6服务器集成到Active Directory中.我使用配置3(SSSD / Kerberos / LDAP)遵循Red Hat的this指南.使用Windows Server 2008 R2服务器作为启用IMU的域控制器时,一切都运行良好.但是,当我使用启用了IMU的Windows Server 2012 R2服务器时,我能够获取kerber…

html table设置行高_html 表格单元格的宽度和高度的设置方法

做网页的时候,经常会碰到表格宽度对不齐的问题。详细地看了html中表格标签table的高度和宽度设置的细节,现总结如下:1、table中的width和height设置及其作用:table中设置的height其实是设置个最小值,也就是当表格中的内…

iOS懒加载

1.懒加载基本 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小)。所谓懒加载,写的是其getter方法。说的通俗一点,就是在开发中,当程序中需要利用的资源时。在程序启动的时候不…

linux promisc 作用,linux 下怎樣查看網卡是否支持混雜(promisc)模式

1,未設置支持promisc[rootbogon libpcap-1.3.0]# ifconfig eth0eth0: flags4163 mtu 1500inet 192.168.1.18 netmask 255.255.255.0 broadcast 192.168.1.255inet6 fe80::20c:29ff:fe90:90e9 prefixlen 64 scopeid 0x20ether 00:0c:29:90:90:e9 txqueuelen 10…

docker 发布tomcat项目_在docker中部署tomcat并且部署java应用程序的步骤详解

1、先说如何在docker中部署tomcat第一步:root用户登录在系统根目录下创建文件夹tomcat7,命令如:mkdir tomcat7,并且切换到该目录下:cd tomcat7;第二步:创建Dockerfile,命令如:touch …

Linux vi 行尾 ctrl,linux中vi使用技巧常用技巧和高级替换

linux中vi使用技巧常用技巧和高级替换模式切换:i,I 进入插入模式:i为从目前光标所在处插入;I为在目前所在列的第一个非空格的字符处开始插入。a,A 进入插入模式:a为从目前光标所在的下一个字符处开始插入…

c# 批量mqtt_C#使用 MQTTnet 快速实现 MQTT 通信(文末有完整Demo下载)

MQTT(一)C#使用 MQTTnet 快速实现 MQTT 通信(文末有完整Demo下载)原创weixin_pwtank1983 发布于2018-02-03 10:22:24 阅读数 36681 收藏展开目录MQTT(一)C#使用 MQTTnet 快速实现 MQTT 通信(文末有完整Demo下载)MQTT(二)在windows64位上安装Python环境MQTT(三)Python客户端net客…

5月16日 AJAX

主页面&#xff1a; <head> <script src"../jquery-2.2.3.min.js"></script> </head><body> <div> <input type"text" id"uid" /><span id"xinxi"></span> </div> </…

linux signal 符号表6,gdb调试信息__000_linux-gnu_00000000_002_rw-p__169IT.COM

很少使用gdb调试&#xff0c;现在用了&#xff0c;又不知道是什么意思&#xff0c;求大侠指教*** glibc detected *** /home/hhbgk/url/url: free(): invalid next size (normal): 0x0809ac30 *** Backtrace: /lib/i386-linux-gnu/libc.so.6(0x6ff22)[0x1a0f22]/lib/i386-linux…

pyecharts查看版本_pyecharts v1 版本 学习笔记 折线图,面积图

折线图折线图 基本demoimport pyecharts.options as optsfrom pyecharts.charts import Linec (Line().add_xaxis(["衬衫", "毛衣", "领带", "裤子", "风衣", "高跟鞋", "袜子"]).add_yaxis(商家A, [1…

【Django】Django Debug Toolbar调试工具配置

正在发愁怎么调试Django&#xff0c;就遇到了Django Debug Toolbar这个利器。 先说遇到的问题&#xff1a; 网上也有教程&#xff0c;不过五花八门的&#xff0c;挨个尝试了一遍&#xff0c;也没有成功运行。最后终于找到问题所在&#xff1a; 从开发服务器日志可知&#xff1a…

单片机c语言模块化实例程序设计,单片机C语言模块化设计

原标题&#xff1a;单片机C语言模块化设计keil中实现 模块化编程.doc在使用 KEIL 的时候,我们习惯上在一个.c 的文件中把自己要写的东西按照自己思路的顺序进行顺序书写。这样是很普遍的写法,当程序比较短的时候比如几十行或者一百多行,是没有什么问题的。但是当程序很长的时候…

python中提取pdf文件某些页_人工智能|Python提取PDF中的文本并朗读

题前的话之前有老师在群里推荐这个&#xff0c;我看了一眼觉得还是蛮有趣的&#xff0c;然后就忘了……昨天又看到这个《宅男福利&#xff01;我50行Python代码让小姐姐给你读Pdf》&#xff0c;今天于是开始自己尝试&#xff0c;谁知道pdfplumber库怎么也安装不了&#xff0c;最…

基于RAF的一个小动画框

RAF也即是requestAnimationFrame&#xff0c;之前的动画都是基于setTimeout写的&#xff0c;所以为了性能方面的考虑&#xff0c;开始使用requestAnimationFrame写动画。 function animation(obj, data) {if (obj.timer) {window.cancelAnimationFrame(obj.timer)}obj.timer w…

c语言定义一个字母的范围,C语言学习知识程序设计试卷及其规范标准答案

C 语言程序设计 笔试试题题号 一 二 三 四 五 六 笔试(70%)综合 (30%)总分分数试卷说明&#xff1a;1. 笔试卷面总分100分&#xff0c;取卷面成绩的70%计入总分&#xff1b;2. 综合成绩为平时成绩(10%)和实验成绩(20%)之和&#xff0c;占总分的30%&#xff1b;3. 答题时禁止拆开…

python执行时间长被kill_用python记录运行pid,并在需要时kill掉它们的实例

我在跑爬虫程序的时候&#xff0c;由于爬虫程序的等待目标服务器返回数据的时间很长&#xff0c;而cpu占用很低&#xff0c;所以经常挂着代理一跑就跑好几百个。但是爬虫程序通常是写了死循环&#xff0c;或直到分配给该进程的任务都跑完才退出的。如果我们想中途结束掉这些任务…