Code前端首页关于Code前端联系我们

Python 高级:从 Pandas 库读取、获取、拆分和写入数据!

terry 2年前 (2023-09-25) 阅读数 74 #后端开发

1。 pandas 的介绍

Pandas 是一个强大的数据分析库。 Series 和 DataFrame 数据结构使得处理二维表格数据变得非常容易。 基于后面处理Excel表格数据的需要,有时候使用Pandas库处理表格数据会更加轻松简单,所以这里不得不说一下。 Pandas 库是一个极其丰富的库,但这里并未涵盖所有内容。这里主要讲的是如何利用Pandas库来实现“读表”“获取表”“合并表”te完成任务。事实上,Pandas 能执行的功能远不止这些。如何使用这个库来实现数据清晰度和创建图表超出了本书的范围。你可以继续研究这个库。 在使用这个库之前,必须先导入它。为了便于使用,通常将此库命名为 pd。当我们在本书中遇到PD时,我们谈论的是Pandas。

2。读取Excel数据

Pandas支持读取CSV、Excel、Json、HTML、Database等多种形式的数据,非常强大。但这里我们仅以读取Excel文件为例来介绍如何使用Pandas库读取本地Excel文件。 在Pandas库中,pd.read_excel()函数用于读取Excel文件。这个功能之所以强大,是因为我们可以使用很多参数,这使得我们读取Excel文件变得更加容易。这里我们只讨论四个通用参数:工作表名称、标题、usecols 和名称。

①工作表名称参数详解

我们知道一个Excel文件就是一个工作簿,一个工作簿有多个工作表,每个工作表包含一个数据表。 sheet_name 参数帮助我们选择要读取的工作表。具体用法如下。 sheet_name=正整数值,等于0表示读取第一张,等于1表示读取第二张,以此类推。 sheet_name="sheet name",我们可以通过每张sheet的名称来读取不同的sheet,更加方便灵活。 注:如果不指定该参数,则默认读取第一张。? Name"df = pd.read_excel("readexcel.xlsx",sheet_name="考试成绩单")
df结果如下: python进阶:Pandas库的数据读取、获取、拼接、写出!

②表头参数详细解释

有时候太读取的Excel文件可能有也可能没有标题行,但是默认情况下会读取第一行作为标题行,这对于没有标题行的Excel文件来说不太适合,所以header参数可以很好的解决这个问题 header=None,主要针对没有标题行的Excel文件,系统不使用第一行数据作为标题,而是默认标题1,2,3... header=正数整数值,指定哪一行作为标题行。 ? header=正整数
df = pd.read_excel("readexcel.xlsx",sheet_name="基本信息表", header=1)
df结果如下: python进阶:Pandas库的数据读取、获取、拼接、写出!

③usecols参数详解

如果一个表有很多列,如果你想只读取表中的指定列,使用usecols参数是一个不错的选择。 关于usecols参数,使用方法有很多种,我们将分别进行说明。 usecols=None 表示选择表中的所有列。默认情况下,不指定该参数,这也意味着必须选择表中的所有列。 usecols=[A,C]表示选择A列(第一列)和C列(第三列)。其中usecols=[A,C:E]表示选择A列、C列、D列和E列。 usecols=[0,2]表示选择第一列和第三列。? df = pd.read_excel("readexcel.xlsx",sheet_name="考试成绩表",usecols="A:B")
df结果如下: python进阶:Pandas库的数据读取、获取、拼接、写出!

④详细解释名称参数

如果表格没有标题行,我们需要为其提供标题。使用参数名称,我们可以在读取数据时为表提供标题。 names=["列名1","列名2"...]:传递一个包含每列的列名的列表。 name_list = ["学号","姓名","性别","城市"]
df = pd.read_excel("readexcel.xlsx",sheet_name="copy",header=None , names= name_list)
df结果如下:python进阶:Pandas库的数据读取、获取、拼接、写出!

3. Excel数据的获取

知道了如何读取Excel文件中的数据后,接下来我们需要学习如何灵活地获取Excel表格的位置数据中的数据。 这里我一共提供了5种需要掌握的数据获取方法,分别是“访问一列或多列”“访问一列或多行”、 “访问单元格中的值”,“访问多行和多列”

① 什么是“位置索引”和标签索引

python进阶:Pandas库的数据读取、获取、拼接、写出! 在讲述如何获取号码之前,我们首先要了解“位置索引”和“标签索引”两个概念。 每个表的行索引是“标签索引”,标识每行位置的数字是“位置索引”,如图所示。 对于pandas来说,标签索引使用loc方法,位置索引使用iloc方法。然后根据图中的表格,教大家如何“取号”。 首先我们需要读取这个表中的数据。? ,直接使用方括号中的“标签数组”方法就比较容易获得一列或多列。 方法一:访问一列 df["武汉"]方法二:访问多列 df[["武汉","广水"]]

③ 访问一列或多列columns rows Line

“访问一行或多行”的方法较多,所以特别容易出错,需要特别注意。一 方法一:访问一行 #位置索引
df .iloc [ 0]
#标签索引
df.loc[“区域1”方法2:访问多行#位置索引
df.iloc[[0,1,3]]
# Tagindex
df.loc[["区域 1", "区域 2", "区域 4"] ]

访问单元格中的特定值 有多种方法可以“访问单元格中的特定值”单元格中的某个值”,“位置索引”或“标签索引”。 ? “访问多行多列”,方法还有更多。我一共给大家总结了5种方法。第一种,iloc + slice;第二个,loc + 标签数组;第三种,iloc+切片+位置数组;第四种,loc+切片+标签数组。? 3 这两行中的武汉、孝感、广水列
df.loc[["区域 1", "区域 3"], ['武汉', '孝感', '广水']] 方法 3 : iloc+slice+position数组#选取所有行的第2、5列数据
df.iloc[:,[1,4]]方法四:loc+slice+label数组 # 选择区域1和区域2两行中的武汉和广水列
df.loc[:"区域2":,["武汉","广水"]]

4.如何拆分Excel数据

合并多个表格时,我们需要将多个表格的数据垂直(上下)拆分。在pandas中,可以直接使用pd.concat()函数完成表的垂直串联。 至于pd.concat()函数,它的用法其实很简单。有一个ignore_index参数需要我们注意。 ignore_index=True 表示忽略原始索引并生成一组新索引。 如果不使用ignore_index参数df1 = pd.read_excel("concat.xlsx",sheet_name="Sheet1")
df2 = pd.read_excel("concat.xlsx",sheet_name="Sheet2 ")
pd.concat([df1,df2],ignore_index=True)结果如下: python进阶:Pandas库的数据读取、获取、拼接、写出!如上表所示,有两条完全重复的记录。我们可以直接调用drop_duplicates()函数来实现去重操作。df1 = pd.read_excel("concat.xlsx",sheet_name="Sheet1")
df2 = pd.read_excel("concat.xlsx",sheet_name="Sheet2")
pd.concat([ df1,df2],ignore_index=True).drop_duplicates()结果如下:python进阶:Pandas库的数据读取、获取、拼接、写出!

5.写入Excel数据

当我们读取Excel文件中的表格、整理数据等一系列操作后,需要将处理后的数据导出到本地。事实上,Pandas库中可以导出的数据格式有很多种。我们也以导出xlsx文件为例进行描述。 要将 Pandas 库中的数据导出为 xlsx 格式,请使用 DataFrame 对象的 to_excle() 方法,该方法有四个常用参数。详情如下。
  • excel_writer:表示数据写入的位置。它可以是路径或 ExcelWriter 对象。
  • 工作表名称:设置导出到本地文件的Excel文件的工作表名称。
  • index:新导出到本地的文件默认有一个从0开始的索引列,通过设置index=False可以去掉这个索引列。
  • 列:选择以指定要导出的列。默认设置是导出所有列。
  • 编码:有时导出的文件以不可读的格式显示。此时,需要使用该参数来设置文件编码格式。
df1 = pd.read_excel("concat.xlsx",sheet_name="Sheet1")
df2 = pd.read_excel("concat.xlsx",sheet_name="Sheet2")
df3 = pd.concat ([df1,df2],ignore_index = True)
df3.to_excel(excel_writer =“to_excel.xlsx”,sheet_name =“to_excel”,index =无)

6。使用ExcelWriter

有时,如果需要在同一个工作簿中写入多个Excel表格,则需要使用Pandas中的pd.ExcelWriter()对象。默认情况下,xls 使用 xlwt 引擎,xlsx 默认使用 openpyxl 引擎。 这里有两个参数:一个是路径参数Path,指定生成文件的存储路径,另一个是时间格式参数datetime_format,可以格式化生成文件中的时间列,并根据指定时间。 df1 = pd.read_excel("concat.xlsx",sheet_name="Sheet1")
df2 = pd.read_excel("concat.xlsx",sheet_name="Sheet2")
with pd.ExcelWriter( "excel_writer.xlsx",datetime_format="YYYY-MM-DD") 作为作者:
df1.to_excel(excel_writer=writer,sheet_name="df1",index=None)
df2.to_excel(excel_writer=writer ,sheet_name="df2",index=None)上面第三行代码中,在打开一个ExcelWriter对象的同时,我们将时间列中设计的所有数据格式化,并以年-月-日的形式输出。 第四行代码,我们将df1中的数据写入ExcelWriter对象,并将sheet命名为df1。最后第五行代码,将df2中的数据写入ExcelWriter对象,并将工作表命名为df1。

来自快学Python,作者黄巍

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门