乐趣区

关于python:Pandas-动态确定标题行

Pandas 是用 python 语言编写的,超好用的数据处理工具,也提供了特地不便的 excel 读写性能,能够一句话读入 excel 文件中所有数据:

import pandas as pd

dataframe = pd.read_excel(io=file_path_name, header=1)

read_excel 办法有很多参数,其中 header 示意第几行是 excel 文件的题目行——Pandas 会应用题目行中的值,当做 dataframe 中的列名。这个行数从 0 开始计数,比如说 excel 是这个样子:

空空空 空空空
姓名 性别
张大柱
王翠花

那么下面的代码就把第 2 行当做题目行,读出来的 dataframe 有两列,别离是 ” 姓名 ” 和 ” 性别 ”,能够用 dataframe[‘ 姓名 ’],来获取第一列的数据。

但有的时候,咱们不晓得第几行才是题目行 ,而且 excel 文件又相当大,比方有上万行,read_excel 一次破费的工夫,可能高达数十秒。这时咱们就要在一次性读取数据之前,先确定题目行的地位。

那么就先找找题目行的特色,比方咱们晓得第一列永远都是“姓名”,咱们就能够先循环读取表格中第一列的所有单元格,直到找到“姓名”为止,也就确认题目行了。

正好 Pandas 底层应用了 xlrd 来读取 excel,这个库也就不必独自装置了,间接援用,退出上面几行代码即可:

import pandas as pd
import xlrd

workbook = xlrd.open_workbook(file_path_name)  # 关上指定的 excel 文件
sheet = workbook.sheets()[0]  # 读取指定的 sheet 表格
i = 1  # 假如缺省状况下,第 2 行是题目行
for i in range(10):
    value = sheet.cell(i, 0).value  # 行号、列号,都是从 0 开始
    if value == '姓名':
        break
workbook.release_resources()

dataframe = pd.read_excel(io=file_path_name, header=i)

这样无论第几行是题目行,都能正确解析了

退出移动版