python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > pandas读取excel指定行列数据方法

pandas读取excel指定行列数据方法有哪些?看这篇就够了

作者:程序员南风

还在为pandas读取Excel文件发愁吗?本文详细讲解了read_excel的用法,包括如何指定sheet、处理表头,以及用values、loc和iloc灵活获取数据,通过多个示例,帮你快速掌握pandas操作Excel表格的核心技巧,提升数据处理效率

1.读取Excel文件

当只读取一个sheet时,返回的是DataFrame类型,这是一种表格数据类型,它清晰地展示出了数据的表格型结构。具体写法为:

*同时读取多个sheet,以字典形式返回。(不推荐)

(1)指定多个sheet名称读取,

df=pd.read_excel(“data_test.xlsx”,sheet_name=[“test1”,“test2”])

(2)指定多个sheet索引号读取,

df=pd.read_excel(“data_test.xlsx”,sheet_name=[0,1])

(3)混合指定sheet名称和sheet索引号读取,

df=pd.read_excel(“data_test.xlsx”,sheet_name=[0,“test2”])

2.DataFrame对象的结构

对内容的读取分有表头和无表头两种方式,默认情形下是有表头的方式,即将第一行元素自动置为表头标签,其余内容为数据;当在read_excel()方法中加上header=None参数时是不加表头的方式,即从第一行起,全部内容为数据。

读取到的Excel数据均构造成并返回DataFrame表格类型(以下以df表示)。

对有表头的方式,读取时将自动地将第一行元素置为表头向量,同时为除表头外的各行内容加入行索引(从0开始)、各列内容加入列索引(从0开始)。

对无表头的方式,读取时将自动地为各行内容加入行索引(从0开始)、为各列内容加入列索引(从0开始),行索引从第一行开始。

3.用values方式获取数据

1.基本方法

根据具体需要,通过ndarray的使用规则获取指定数据。数据获取的结构示意图如下所示。

有表头

无表头

2.获取指定数据的写法

3.示例

Python脚本为

import pandas as pd

df = pd.read_excel("data_test.xlsx")

print("\n(1)全部数据:")
print(df.values)

print("\n(2)第2行第3列的值:")
print(df.values[1,2])

print("\n(3)第3行数据:")
print(df.values[2])

print("\n(4)获取第2、3行数据:")
print(df.values[[1,2]])

print("\n(5)第2列数据:")
print(df.values[:,1])

print("\n(6)第2、3列数据:")
print(df.values[:,[1,2]])

print("\n(7)第2至4行、第3至5列数据:")
print(df.values[1:4,2:5])

执行结果

4.用loc和iloc方式获取数据

1.基本写法

loc和iloc方法是通过索引定位的方式获取数据的,写法为loc[A, B]和iloc[A, B]。其中A表示对行的索引,B表示对列的索引,B可缺省。A、B可为列表或i1:i2(切片)的形式,表示多行或多列。

这两个方法的区别是,loc将参数当作标签处理,iloc将参数当作索引号处理。也就是说,在有表头的方式中,当列索引使用str标签时,只可用loc,当列索引使用索引号时,只可用iloc;在无表头的方式中,索引向量也是标签向量,loc和iloc均可使用;在切片中,loc是闭区间,iloc是半开区间。

获取指定数据的写法

(1)获取全部数据:

(2)获取某个值:

(3)获取某一行:

(4)获取多行:

(5)获取某一列:

(6)获取多列:

(7)获取切片:

示例

Python脚本为

import pandas as pd

df = pd.read_excel("data_test.xlsx")

print("\n(1)全部数据:")
print(df.iloc[:,:].values)

print("\n(2)第2行第3列的值:")
print(df.iloc[1,2])

print("\n(3)第3行数据:")
print(df.iloc[2].values)

print("\n(4)第2列数据:")
print(df.iloc[:,1].values)

print("\n(5)第6行的姓名:")
print(df.loc[5,"姓名"])

print("\n(6)第2至3行、第3至4列数据:")
print(df.iloc[1:3,2:4].values)

执行结果

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文