pandas读取excel文件的函数为
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas读取excel文件的函数为相关的知识,希望对你有一定的参考价值。
你可以把这个文件直接的先读一下,因为文件的内容非常的丰富,再加上他读取了一个文件函数为可以根据他这个格式去稍微的调整一下,这样才能够知道里面缺少的是什么来,主要讲的内容是什么,这样就能够有更多思路。 参考技术A 这种这种型号的读取文件,通过它的函数才能去定位定位这种函数,你必须通过它的原理,你才能知道它是函数的一个计算方式。 参考技术B 那么如果说需要读取内部的函数的话,你可以通过相关设置里面然后对一些参数物理的选择以及各方面的数据进行对应的判定里面,所包含各方面选择都是可以通过手动进行添加的。 参考技术C 读取秧歌的文件的函数为可以读取的函数,根据他在所需要的数据来读取的。 参考技术D Excel中文件的函数一般是可以通过快捷方式来求出结论的。50_Pandas读取 Excel 文件 (xlsx, xls)
50_Pandas读取 Excel 文件 (xlsx, xls)
要使用 pandas 将 Excel 文件(扩展名:.xlsx、.xls)作为 pandas.DataFrame 读取,请使用 pandas.read_excel () 函数。
这里,将描述以下内容。
- openpyxl、xlrd的安装
- pandas.read_excel()的基本用法
- 通过编号/工作表名称指定要读取的工作表:参数 sheet_name
- 读取一张Sheet
- 读取多张Sheet
- 加载所有Sheet
- 指定标头、索引:参数header、index_col
- 指定要读取的列和不读取的行:参数 usecols、skirows、skipfooter
以下面的 xlsx 文件为例。
sheet1
A B C
one 11 12 13
two 21 22 23
three 31 32 33
sheet2
AA BB CC
ONE 11 12 13
TWO 21 22 23
THREE 31 32 33
openpyxl、xlrd的安装
pandas.read_excel () 在内部使用名为 openpyxl 和 xlrd 的库。
openpyxl 和 xlrd 是在 Python 中读取和写入 Excel 文件(.xlsx、.xls)的库。
openpyxl 和 xlrd 都可以用 pip 安装。
$ pip install openpyxl
$ pip install xlrd
pandas.read_excel()的基本用法
在第一个参数 io 中指定 Excel 文件的路径或 URL。 如果您有多个工作表,则只有第一个工作表将作为 pandas.DataFrame 加载。
import pandas as pd
print(pd.__version__)
# 1.2.2
df = pd.read_excel('./data/sample.xlsx', index_col=0)
print(df)
# A B C
# one 11 12 13
# two 21 22 23
# three 31 32 33
print(type(df))
# <class 'pandas.core.frame.DataFrame'>
Index_col = 0 设置为使第一列索引。稍后将描述细节。 该示例读取 .xlsx 文件(Excel2007 之后的 Excel 文件),但同样适用于 .xls 文件(Excel97-2003 的 Excel 文件)。
通过编号/工作表名称指定要读取的工作表:参数 sheet_name
读取一张Sheet
要读取的工作表可以由参数 sheet_name 指定。通过以 0 开头的数字或工作表名称指定。
df_sheet_index = pd.read_excel('./data/sample.xlsx', sheet_name=0, index_col=0)
print(df_sheet_index)
# A B C
# one 11 12 13
# two 21 22 23
# three 31 32 33
df_sheet_name = pd.read_excel('./data/sample.xlsx', sheet_name='sheet2', index_col=0)
print(df_sheet_name)
# AA BB CC
# ONE 11 12 13
# TWO 21 22 23
# THREE 31 32 33
读取多张Sheet
也可以在参数 sheet_name 中指定一个列表。您可以使用起始编号或工作表名称。 指定的数字或工作表名称被读取为键 key,该工作表的数据 pandas.DataFrame 被读取为值为 value 的字典 dict。
df_sheet_multi = pd.read_excel('./data/sample.xlsx', sheet_name=[0, 'sheet2'], index_col=0)
print(type(df_sheet_multi))
# <class 'dict'>
print(len(df_sheet_multi))
# 2
print(df_sheet_multi.keys())
# dict_keys([0, 'sheet2'])
读取时由数字指定的工作表的键是数字,由工作表名称指定的工作表的键是工作表名称。
print(df_sheet_multi[0])
# A B C
# one 11 12 13
# two 21 22 23
# three 31 32 33
print(type(df_sheet_multi[0]))
# <class 'pandas.core.frame.DataFrame'>
print(df_sheet_multi['sheet2'])
# AA BB CC
# ONE 11 12 13
# TWO 21 22 23
# THREE 31 32 33
print(type(df_sheet_multi['sheet2']))
# <class 'pandas.core.frame.DataFrame'>
加载所有Sheet
如果设置了参数 sheet_name = None,则将读取所有工作表。
df_sheet_all = pd.read_excel('./data/sample.xlsx', sheet_name=None, index_col=0)
print(type(df_sheet_all))
# <class 'dict'>
print(df_sheet_all.keys())
# dict_keys(['sheet1', 'sheet2'])
指定标头、索引:参数header、index_col
要指定用作标题(pandas.DataFrame 的列名列)和索引(pandas.DataFrame 的行名索引)的行或列,请将行号/列号以 0 开头分别传递给参数 header 和 index_col。
如果 header 和 index_col 设置为 None,特定的行和列将不会用于 headers 和索引,它们将是从 0 开始的序列号。
df_header_index = pd.read_excel('./data/sample.xlsx', header=None, index_col=None)
print(df_header_index)
# 0 1 2 3
# 0 NaN A B C
# 1 one 11 12 13
# 2 two 21 22 23
# 3 three 31 32 33
print(df_header_index.columns)
# Int64Index([0, 1, 2, 3], dtype='int64')
print(df_header_index.index)
# RangeIndex(start=0, stop=4, step=1)
默认为 header = 0(= 第一行是列),index_col = None(= 没有指定列作为索引)。
df_default = pd.read_excel('./data/sample.xlsx')
print(df_default)
# Unnamed: 0 A B C
# 0 one 11 12 13
# 1 two 21 22 23
# 2 three 31 32 33
print(df_default.columns)
# Index(['Unnamed: 0', 'A', 'B', 'C'], dtype='object')
print(df_default.index)
# RangeIndex(start=0, stop=3, step=1)
如果pandas的版本比较旧,如果header中指定的行的第一个元素是NaN,即使默认也使用第一列作为索引(index_col = None)(源码未确认,所以不知道是什么类型的)处理它是。)。 如果要将第一列设置为索引,可以显式设置 index_col = 0 ,任何版本都可以放心。
print(pd.read_excel('./data/sample.xlsx', index_col=0))
# A B C
# one 11 12 13
# two 21 22 23
# three 31 32 33
也可以在参数名称中指定任何列名称列,如在读取 csv 文件的 read_csv () 中。有关详细信息,请参阅以下文章。
指定要读取的列和不读取的行:参数 usecols、skirows、skipfooter
如果不需要读取所有行/列,您可以指定读取哪些列和不读取哪些行。
在参数 usecols 中传递要读取的列号列表,在参数 skiprows 中传递要跳过(未读取)的行号列表,在参数 skipfooter 中传递要跳过(未读取)的最后行数。
df_use_skip = pd.read_excel('./data/sample.xlsx', index_col=0,
usecols=[0, 1, 3], skiprows=[1], skipfooter=1)
print(df_use_skip)
# A C
# two 21 23
当然,也可以在读取时不处理行列,全部读取后删除行列或引用任意位置的元素。
以上是关于pandas读取excel文件的函数为的主要内容,如果未能解决你的问题,请参考以下文章