使用 pandas 读取 excel表格很简单:
import pandas as pd
table = pd.read_excel(io)
加载表格后,若想获得表格表头:
table.columns
这种方法可行,但有些时候其实仅仅只是想直接获得 excel 表格的表头,尤其是当 excel 表格本身体量很大,每次都需要将数据表加载到内存会非常耗时&也没必要,有时甚至会直接溢出卡死,看了一下官方文档,貌似可以使用nrows
参数指定只读取 excel 的特定行,意味着可以利用它只读取首行表头:
header = pd.read_excel(io, nrows = 0)
然而实测发现该参数并不能阻止 pandas 读取整个excel 表格,仍然会耗费大量时间和内存。请问各位兄弟姐妹是否有比较好的经验处理这一问题?
###确实如如此, pandas 无论做什么操作都会先打开表格再读取所有数据
遇到数据量大的表时格我一般会用 xlwings 来协助处理
import xlwings as xw
import pandas as pd
app = xw.App(visible=True, add_book=False) # visible 隐式打开文件
book = app.books.open('xxx.xlsx') # 打开 excel
sht = book.sheets[0] # 选择 sheet
sht.range('a1:a4').value #获取值
book.close() # 关闭
app.quit() # 退出
这个方法不用读取所有的数据,而是只选择自己需要的数据。但是打开表格这一步好像是免不了的。