如何从多个Excel表格读取指定单元格并合并为单个pandas dataframe
多Excel读取指定单元格合并为DataFrame解决方法
原代码问题分析
- 直接append
[name,city]会将两个值作为两行单列数据追加,无法生成name、city两列的结构 - pandas 1.4+版本已正式废弃
DataFrame.append()方法,官方更推荐先收集所有数据再一次性转换为DataFrame的写法,性能更高
正确实现代码
import pandas as pd import glob import xlrd file_list = glob.glob("*.xls") # 初始化列表存储所有行数据 data = [] for f in file_list: wb = xlrd.open_workbook(f) sheet = wb.sheet_by_index(0) name = sheet.cell_value(rowx=9, colx=2) city = sheet.cell_value(rowx=15, colx=2) # 每行作为字典存入列表,key对应最终DataFrame的列名 data.append({"name": name, "city": city}) # 一次性转换为目标结构的DataFrame df = pd.DataFrame(data)
补充说明
- 若需要处理
.xlsx格式文件,xlrd 2.0+版本已不支持该格式,可选择将xlrd降级至1.2.0版本,或改用openpyxl库读取文件 - 若需要保留源文件名作为额外字段,可在append时新增
"source_file": f的键值对即可
内容的提问来源于stack exchange,提问作者tststs
相关产品推荐
相关产品推荐

