当前位置:   article > 正文

【Python基础】Pandas—read_excel()基本操作_python pd.read excel

python pd.read excel

一、pandas.read_excel()

1.用法

import pandas as pd
pad = pd.Dataframe() # 创建一个空的DataFrame
path = r'D\Program\xxx.xlsx'
data = pd.read_excel(path, .......) # .....表示其他参数,具体看解析
  • 1
  • 2
  • 3
  • 4

2.返回值

⭐通过read_excel()读取excel后返回DataFrame或者由DataFrame构成的字典⭐

  • 当读取单个sheet表时 返回DataFrame
  • 当读取多个sheet表时 返回key为sheet表名、value为DataFrame的字典

3.read_excel()常用参数解析

除了要传入文件路径外 一般还会传入sheet相关参数来读取数据

3.1. sheet_name:要读取的工作表

sheet_name = str、int、list、None均可 Default = 0

  • str:传入要读工作表的名称,
    【例】sheet_name = ‘sheet1’
  • int:传入要读工作表的顺序索引,从0开始;
    【例】读取Excel的第二个sheet页 该参数sheet_name = 1
  • list:传入列表指定读取多个sheet页,可全int/str也可混合使用
    【例】sheet_name = [0, 1, ‘sheet3’] 读取多个sheet页返回key为sheet表名、value为DataFrame的字典
  • None:默认读取Excel中所有的sheet页 返回DataFrame字典

3.2. header:列名(表头)所在行

header = int、list、None Default = 0
该参数用于指定DataFrame数据的列标签,默认为0,即把sheet页第一行看作每一列的表头(列标签)

  • int:使用该行作为列表头
    【例】header = 1 表示把第二行看作列标签 (其他不常用 不展开解释)

3.3. names:定义DataFrame列名

该参数用于指定 DataFrame 的列名,传入字符串列表
一般配合header=None使用(否则会默认把第1行当作列名,然后names参数又重新定义列名,即names参数会覆盖header指定的内容,这样会导致sheet页的第1行数据丢失)

pd.read_excel(path, sheet_name = 1, header = None, names = ['lst1','lst2'], usecols=[0,1])
  • 1

3.4. usecols:读取部分列

usecols= str、int、list、None Default = None

  • None:表示读取所有列
  • str:读取相关列数据
    【例】usecols = ‘A, E’ 或者usecols = ‘A, C, E : G’ 范围包括两端
  • list:可以是int、str
    【例】usecols = [0,1] usecols = [‘A’,‘B’,‘E’]

3.5. skiprows:跳过指定行(指定规则)读取数据

skiprows = list、int、callable

  • list:表示要跳过的行
    【例】skiprows = [0,1, 5] 跳过第1、2、6行数据不读取
  • int:表示要从头跳过的行数
    【例】skiprows = 2 跳过前3行数据不读取
    重要:使用该参数时应特别注意header参数的取值,原理较为复杂 实际应用调试时注意即可
  • callable:可调用对象如果为True则跳过改行
    【例】lambda x: x in [0, 2] 表示跳过索引为 0 和 2 的行,也可以通过隐形函数定义跳过奇偶行等

3.6. nrows :从头读取的行数

nrows = 4表示只读取表格前5行数据,同样注意header取值

3.7. dtype :数据类型

较为复杂的excel数据 一般该参数dtype = str

4. 定位/修改DataFrame中的数据-loc()/iloc()

通过列标签可以直接索引DF的列数据,语法如下:

DataFrame['column_label']
  • 1

通过pandas将excel中的数据以dtype的形式读取到DataFrame中后可通过loc索引读取单元格数据
定位.loc的特殊用法

import pandas as pd
path = r'D\Program\xxx.xlsx'
data = pd.read_excel(path,sheet_name=8, dtype=str)
#默认header=0占用一行 实际dataframe是从【表格】第二行开始读取的loc[4]对应第六行
cellvalue_str = data.loc[4][2] # 读取第六行第三个元素的单元格数据、
#将不同数据读取出来放在两个列表中 通过zip和dict将数据打包成字典以便后续使用
# **也可以通过data.at[4,'Name列标签'] = 'A' 可以访问单个元素进行修改**
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

4.1 Dataframe.loc[ ] 基于标签进行索引和选择

DataFrame.loc 是 Pandas 库中用于按位置标签(行或列的名称)选择行和列的方法。
其语法如下:

df.loc[row_indexer, column_indexer]
  • 1

其中 row_indexer 和 column_indexer 可以是标签、标签列表、标签切片或布尔数组

# 选择单个元素
df.loc[row_label, column_label]
df.loc[row_label][colum_index]

# 选择多行元素
df.loc[start_row_label:end_row_label, :]
df.loc[start_row_label:end_row_label]
df.loc[<list>,:] # 或者df.loc[<list>]默认所有列都选

# 选择多列元素
df.loc[:, start_column_label:end_column_label]

# 选择子集元素 row_indexer  column_indexer 表示两个索引列表
df.loc[row_indexer, column_indexer]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

【示例】选择单个元素

import pandas as pd
df = pd.DataFrame(
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/934498
推荐阅读
相关标签
  

闽ICP备14008679号