版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章Python科学计算与表格处理1(Python科学计算2(表格处理目录Python科学计算1paneldata面板数据Pandas库在计算机编程中,Pandas是Python编程语言的用于数据操纵和分析的软件库,其名字衍生自术语"paneldata"(面板数据)和"Pythondataanalysis"(Python数据分析)。Pandas是基于NumPy的一种工具,提供高性能、易于使用的数据结构和数据分析工具,是一个强大的分析结构化数据的工具集。Pandas主要用于数据分析。Pandas的数据帧允许操纵各种数据文件格式,比如导入导出CSV、JSON、SQL、HDF5和导入MicrosoftExcel等。Pandas允许各种数据操纵运算操作比如归并、再成形、选择,还有数据清洗和数据加工特征。Pandas广泛应用在学术、金融、统计学等各个数据分析领域。PythondataanalysisPython数据分析Pandas安装和导入安装Pandas需要的基础环境是Python,开始前需安装Python和Pip,Python2.7.9+或Python3.4+以上版本都自带pip工具。使用pip安装pandas: pipinstallpandas查看pandas版本:importpandaspandas.__version__导入pandas一般使用别名pd来代替: importpandasaspdPandas-数据结构SeriesSeries是一种一维数组,与Python基本的数据结构List相近。它由一组数据(各种Numpy数据类型)以及一组与之相关的数据标签(即索引)组成,字符串、boolean值、数字等都能保存在Series中。DataFrameDataFrame是一个二维的表格型数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共同用一个索引)。Pandas-DataFrameDataFrame构造方法如下:pandas.DataFrame(data,index,columns,dtype,copy)参数说明:data:一组数据(ndarray、series、map、lists、dict等类型);index:行索引值,默认为RangeIndex(0,1,2,…,n);columns:列索引,默认为RangeIndex(0,1,2,…,n);dtype:数据类型;copy:拷贝数据,默认为False。NumPy库NumPy(NumericalPython)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy的核心功能是ndarray(即n-dimensionalarray,多维数组)数据结构。这是一个表示多维度、同质并且固定大小的数组对象。而由一个与此数组相关系的资料类型对象来描述其数组元素的资料格式(例如其字符组顺序、在存储器中占用的字符组数量、整数或者浮点数等等)。NumPy安装和导入NumPy的安装和导入和Pandas的安装和导入类似。使用pip安装numpy:
pipinstallnumpy查看numpy版本: importnumpy numpy.__version__导入numpy一般使用别名np来代替: importnumpyasnpPipelinePipeline这个单词在深度学习中经常出现。Pipeline,中文意为管线,意义等同于流水线。直白的说就是一套流程工序,专业一点就叫综合解决方案。Pipeline处理机制就像是把所有模型塞到一个管子里,然后依次对数据进行处理,得到最终的分类结果。例子1,最典型的就是Gpu渲染管线,它指渲染一个画面需要经过多少到工序。例子2,爬虫框架里面,它指某个项目或者框架里面需要用到流水线的设计来简化设计,降低复杂度并提高性能,是一种设计方法,是我们将现实中的社会分工借鉴并运用到计算机编程的例子。例子3,算法或者大数据分析里的可重复使用,针对新的数据,直接输入数据,可以得到结果的过程。表格处理2读取表格文件/pandas-docs/stable/reference/api/pandas.read_excel.html前面介绍了pandas可以操纵各种数据文件格式。我们处理主要是对表格数据进行操作。一种是Excel文件,数据格式多为xlsx,另一种是csv格式的数据文件。read_excel()函数:用于读取Excel具体sheet页的数据,该函数的返回结果是一个DataFrame。read_csv()函数:用于读取csv文件,与read_excel()函数类似。示例Excel数据read_excel()/pandas-docs/stable/reference/api/pandas.read_excel.htmlsheet_name参数需要读取的sheet页的名称。默认读取第一个sheet页。#读取名为“test_data”的Excel的名为“Sheet2”的sheet页skiprows参数需要跳过的行数。默认从第一行开始读取,且把第一行作为标题行。如果要跳过第一行,把第二行作为标题行,设置参数skiprows=1(索引下标从0开始)。#读取名为“test_data”的Excel的名为“Sheet2”的sheet页header参数头标题行。默认第一行作为头标题。如果要跳过第一行,把第二行作为标题行,设置参数header=1(索引下标从0开始),与参数skiprows效果一致。#读取名为“test_data”的Excel的名为“Sheet1”的sheet页,并跳过开头说明行header参数如果不设置头标题行,则设置参数header=None。#读取名为“test_data”的Excel的名为“Sheet2”的sheet页,不设置头标题行skipfooter参数需要跳过的末尾的行数。默认不跳过。如果要跳过最后两行,设置参数skipfooter=2。#读取名为“test_data”的Excel的名为“Sheet1”的sheet页,并跳过末尾说明行usecols参数需要读取的列的序号,默认全部读取。序号值可以单独列举,也可以使用英文冒号(:)衔接来表示列的范围。#读取名为“test_data”的Excel的名为“Sheet1”的sheet页中,除了amount(lcy)和payment_details之外的其它列的数据names参数按原始数据列的先后顺序为列重新命名,['列名1','列名2',……])。#读取名为“test_data”的Excel的名为“Sheet1”的sheet页,并为其列重新命名names参数如果names的元素个数少于列数,则从右往左为列赋予名字names参数如果names的元素个数多于列数,则程序报错。文件路径方法一文件路径可以使用绝对路径也可以使用相对路径。使用相对路径时需要把要读取的Excel文件放到当前路径下。方法二文件路径中如果使用的是反斜杠(\),则需要在路径前加“r”,因为在python字符串中反斜杠(\)有转义的含义,如\t可代表TAB,\n代表换行,所以我们需要采取一些方式使得反斜杠(\)不被解读为转义字符。在路径前面加r,即保持字符原始值的意思。如:df=pd.read_excel(r'D:\test_data.xlsx')Sheetnamespd.read_excel()返回的是字典类型,其key对应的是sheetnames,value对应的是相应的DataFrame。当我们想要获取一个Excel里面所有sheet页的名称时,则需要使用ExcelFile()函数。pd.ExcelFile()读取的对象是整个Excel。提升读取Excel的速度当需要在一次数据处理的过程中读取一个Excel多个sheet页的数据时,我们一般会采用在循环里调用pd.read_excel()的方法,把sheetname作为变量。但每次执行一次pd.read_excel()就会进行一次打开文件和关闭文件的操作,当循环次数较大以及文件内部数据量较大时,会严重影响运行速度。为了提升运行速度,我们在循环前就保持文件流出于打开的状态,在循环后关闭文件流。#提升读取excel的速度io=pd.io.excel.ExcelFile(r'文件路径')for条件句:sheet_na=(给变量赋值)df=pd.read_excel(io,sheet_name=sheet_na)……io.close()表格数据的合并与拼接pandas的merge方法是基于共同列,将两个DataFrame连接起来。merge方法的主要参数:how=连接方法;on=设置连接的共有列名,可以设置一列,也可以设置多列。merge方法的使用语法如下:df3=pd.merge(df1,df2,how='xx',on='xx')join方法基于index连接DataFrame,连接方法有内连接、外连接、左连接和右连接,与merge一致。join方法的使用语法如下:new_df3=new_df1.join(new_df2,how='xx')定义dfdf1df2inner内连接取共同列的值的交集进行拼接。此处的“交集”可以理解为,连接的左右两边取共同列的值相同的行,做乘法。假定共同列的相同值是“A”,左边此列为A的数据有一行,右边有两行,那么得到的交集结果就是1×2=2行。inner内连接outer外连接取共同列的值的并集进行拼接。此处的“并集”可以理解为,先对共同列的值取并集,然后根据并集扩充左右两边的DataFrame,比如左边的共同列的值为“A,B,C”,右边的共同列的值为“B,C,D”,那么左右都各自扩充一行,左边扩充的D所在行的其他列的数据为NaN,右边扩充的A所在行的其他列的数据为NaN,此时的并集就相当于对扩充后的左右两边做交集。outer外连接left左连接基于左边位置DataFrame的列进行连接。可以理解为右边共同列的值与左边相同的行,做乘法。共同列的值左边有右边无的行中,与右边有关的列的值为NaN。共同列的值右边有左边无的行不参与连接。left左连接right右连接右连接,基于右边位置DataFrame的列进行连接。右连接的逻辑与左连接同理。right右连接输出到表格文件经过数据清洗得到的DataFrame可以直接输出到文件。to_csv()函数输出为csv格式的文件,to_excel()函数输出为xlsx格式的文件。文件路径可以是相对路径也可以是绝对路径,路径中要写明输出的文件名和文件格式。index=False表示不加索引,默认添加索引。输出位置是当前程序文件的同级目录。输出到表格文件若产生了一批新的同结构的数据(列与列名都相同),可以添加至已有文件的后面。参数header=False表示不添加列名,参数mod
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年及未来5年市场数据中国飞机用坐具行业市场全景调研及投资规划建议报告
- 2026年建筑重金属含量检测合同
- 2026年医疗服务提升计划合同
- 解剖生理血液新
- 2026年公共营养师(膳食搭配实务)自测试题及答案
- 生物多样性保护课件
- 高空外墙清洗员达标竞赛考核试卷含答案
- 搅拌工成果强化考核试卷含答案
- 砖瓦生产工测试验证能力考核试卷含答案
- 缝制机械调试工诚信知识考核试卷含答案
- 地铁货运线2025年市场潜力分析报告
- 2025年中国宠物干细胞疗法行业市场全景分析及前景机遇研判报告 - 网
- 2025年果酒及配制酒合作协议书
- 2025年广东省放射工作人员培训及考核试题(含答案)
- 法宣在线考试试题及答案2025法宣在线题库及答案
- 初中科学说题教学:开启学生思维与能力提升之门
- 2025年苏州高端会计人才选拔试题及答案
- 热力管道在线监测方案(3篇)
- AI模型风险管理-洞察及研究
- 乌鲁木齐市既有建筑改造消防设计与审查指南
- 零跑汽车培训课件
评论
0/150
提交评论