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小时内删除。