PythonPandas实现Excel的灵活操作
展开全文
示例 Excel 数据
我们以下面Excel 为例,演示Python Pandas Excel操作。
∙io: excel文档路径。
∙sheetname : 读取的excel指定的sheet页,若多个则为列表。
∙header :设置读取的excel第一行是否作为列名称。
∙skiprows:省略指定行数的数据。
∙skip_footer:省略从尾部数的int行数据。
∙index_col:设置读取的excel第一列是否作为行名称。
∙names:设置每列的名称,数组形式参数。
∙usecols:读取指定的列, 也可以通过名字或索引值。
读取Excel文件
通过指定表单名的方式来读取,指定列的数据。
import pandas as pdexcel = pd.read_excel('数据爬取-金币涨跌追踪.xlsx', sheet_name='金币跌涨追踪记录', usecols=['时间','产品名称','收购比例','收购金额
RMB','收购金币数量'])print(excel)
加载的Excel数据类型为DataFrame,执行上述代码,输出结果为:
普及一 下 DataFrame:python怎么读取excel的数据
∙DataFrame这种列表式的数据结构和Excel工作表非常类似,其设计初衷是将Series的使用场景由一维扩展到多维。DataFrame由按一定顺序的多列数据组成,各列的数据类型可以有所不同(数值、字符串、布尔值)。
∙Series对象的Index数组存放有每个元素的标签,而DataFrame对象有所不同,它有两个索
引数组。第一个索引数组与行有关,它与Series的索引数组极为相似。 每个标签与标签所在行的所有元素相关联。而第二个数组包含一系列标签,每个标签与一列数据相关联。
∙DataFrame还可以理解为一个由Series组成的字典,其中每一列的列名为字典的键,每一个Series作为字典的值。
使用 iloc 从DataFrame中筛选数据
iloc 语法
data.iloc[<row selection>, <column selection>]
iloc 在Pandas中是用来通过数字来选择数据中具体的某些行和列。可以设想每一行都有一个对应的下标(0,1,2,...),通过 iloc 我们可以利用这些下标去选择相应的行数据。同理,对于行也一样,通过这些下标也可以选择相应的列数据。需要注意的是0表示第一行,并不包含表头。
选择单行或单列
选择数据中的第一行
import pandas as pdexcel = pd.read_excel('数据爬取-金币涨跌追踪.xlsx', sheet_name='金币跌涨追踪记录', usecols=['时间','产品名称','收购比例','收购金额RMB','收购金币数量'])# 选择第1行数据print(excel.iloc[0])# 执行上述代码,输出结果为:时间 2020-10-12 20:49:06产品名称 【拍卖交易】25000万金=362.25元 收购比例 69.01收购金额RMB 362.25收购金币数量 25000Name: 0, dtype: objectProcess finished with exit code 0
选择数据中的最后一行
import pandas as pdexcel = pd.read_excel('数据爬取-金币涨跌追踪.xlsx', sheet_name='金币跌涨追踪记录', usecols=['时间','产品名称','收购比例','收购金额RMB','收购金币数量'])# 选择第1行数据print(excel.iloc[-1])
选择数据中的第一列
import pandas as pdexcel = pd.read_excel('数据爬取-金币涨跌追踪.xlsx', sheet_n
ame='金币跌涨追踪记录', usecols=['时间','产品名称','收购比例','收购金额RMB','收购金币数量'])# 选择第1行数据print(excel.iloc[:, 0]) # 执行上述代码,输出结果为:0 2020-10-12 20:49:061 2020-10-12 20:42:152 2020-10-12 22:26:303 2020-10-13 19:48:594 2020-10-12 20:55:085 2020-10-12 20:53:326 2020-10-12 20:58:147 2020-10-12 21:00:168 2020-10-12 21:57:059 2020-10-12 21:56:04Name: 时间, dtype: objectProcess finished with exit code 0
选择数据中的最后一列
import pandas as pdexcel = pd.read_excel('数据爬取-金币涨跌追踪.xlsx', sheet_name='金币跌涨追踪记录', usecols=['时间','产品名称','收购比例','收购金额RMB','收购金币数量'])# 选择第1行数据 print(excel.iloc[:, -1])
行列混合选择
选择数据中的第 1-3 行的所有列
import pandas as pdexcel = pd.read_excel('数据爬取-金币涨跌追踪.xlsx', sheet_n
ame='金币跌涨追踪记录', usecols=['时间','产品名称','收购比例','收购金额RMB','收购金币数量'])# 数据中的第 1-3 行 所有列print(excel.iloc[0:3])# 执行上述代码,输出结果为: 时间 产品名称 收购比例 收购金额RMB 收购金币数量0 2020-10-12 20:49:06 【拍卖交易】25000万金=362.25元 69.01 362.25 250001 2020-10-12 20:42:15 【拍卖交易】50000万金=725元 68.97 725.00 500002 2020-10-12 22:26:30 【拍卖交易】120000万金=1741.2元 68.92 1741.20 120000Process finished with exit code 0
选择数据中的前2列的所有行
import pandas as pdexcel = pd.read_excel('数据爬取-金币涨跌追踪.xlsx', sheet_name='金币跌涨追踪记录', usecols=['时间','产品名称','收购比例','收购金额RMB','收购金币数量'])# 选择数据中的前2列的所有行print(excel.iloc[:, 0:2])
选择第 0, 2, 4行 和 第 1,3 列
import pandas as pdexcel = pd.read_excel('数据爬取-金币涨跌追踪.xlsx', sheet_n
ame='金币跌涨追踪记录', usecols=['时间','产品名称','收购比例','收购金额RMB','收购金币数量'])# 选择第 0, 2, 4行 和 第 1,3 列print(excel.iloc[[0, 2, 4], [1, 3]])
选择第0-3行 的 0-2列
import pandas as pdexcel = pd.read_excel('数据爬取-金币涨跌追踪.xlsx', sheet_name='金币跌涨追踪记录', usecols=['时间','产品名称','收购比例','收购金额RMB','收购金币数量'])# 选择第0-3行 的 0-2列print(excel.iloc[0:3, 0:2])
使用iloc只选择了单独的一行或一列,返回的数据为 Series 类型,而如果选择了多行数据则会返回 DataFrame 类型,若只选择了一行,但需要要返回 DataFrame 类型,可以传入一个单值列表,如[1],如下:
import pandas as pdexcel = pd.read_excel('数据爬取-金币涨跌追踪.xlsx', sheet_name='金币跌涨追踪记录', usecols=['时间','产品名称','收购比例','收购金额RMB','收购金币数量'])# 行选择:数据中的第一行print(excel.iloc[[0] ])# 列选择: 数据中的第二列print(excel.iloc[:, [1] ])
使用 loc 从DataFrame中筛选数据
data.loc[<row selection>, <column selection>]
ioc 用于以下两种场景:
∙使用 下标 查
∙使用 条件 查
使用 下标 查
选择数据中的第一行
import pandas as pdexcel = pd.read_excel('数据爬取-金币涨跌追踪.xlsx', sheet_name='金币跌涨追踪记录', usecols=['时间','产品名称','收购比例','收购金额RMB','收购金币数量'])# 数据中的第一行print(excel.loc[[1]])
选择数据中的前两行
import pandas as pdexcel = pd.read_excel('数据爬取-金币涨跌追踪.xlsx', sheet_name='金币跌涨追踪记录', usecols=['时间','产品名称','收购比例','收购金额RMB','收购金币数量'])# 数据中的第1、第1行print(excel.loc[[1, 2]])# 执行上述代码,输出结果为: 时间 产品名称 收购比例 收购金额RMB 收购金币数量1 2020-10-12 20:42:15 【拍卖交易】50000万金=725元 68.97 725.0 500002 2020-10-12 22:26:30 【拍卖交易】120000万金=1741.2元 68.92 1741.2 120000
选择第1到3行的 “时间”、“收购比例” 列
import pandas as pdexcel = pd.read_excel('数据爬取-金币涨跌追踪.xlsx', sheet_name='金币跌涨追踪记录', usecols=['时间','产品名称','收购比例','收购金额RMB','收购金币数量'])# 选择第1到3行的 “时间”、“收购比例” 列print(excel.loc[1: 3, ['时间','收购比例']])# 执行上述代码,输出结果为: 时间 收购比例1 2020-10-12 20:42:15 68.972 2020-10-12 22:26:30 68.923 2020-10-13 19:48:59 69.23
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论