首页 > 解决方案 > Python Pandas - 同时通过列索引和列标题提取excel数据

问题描述

我正在尝试编写一个从多个 Excel 文件中提取数据的 Pandas 脚本。它们包含 10 到 15 列。从这些列中,我需要第一个在每个文件中具有不同标题的列,以及其他一些始终具有相同标题名称('TOTAL'、'CLEAR'、'NON-CLEAR'和'SYSTEM')但它们被定位的列在不同文件中的不同列索引下。(我的意思是,在其中一个文件中,'TOTAL' 是表中的第 3 列,但在另一个文件中,它是第 5 列)

我知道使用usecols关键字我可以指定要使用的列,但看起来这个参数只接受标题名称或只接受列索引,并且永远不会将它们组合在一起。

是否可以编写一个语句,同时通过其索引获取第一列,然后通过标题名称获取其他列?

以下语句不起作用:

df = pd.read_excel(file, usecols = [0,'TOTAL', 'CLEAR', 'NON-CLEAR','SYSTEM'])

标签: pythonexcelpandas

解决方案


你可以使用pd.read_excel()两次,而不是加入两个 dfs

df1 = pd.read_excel(file, usecols = [0])
df2 = pd.read_excel(file, usecols = ['TOTAL', 'CLEAR', 'NON-CLEAR','SYSTEM'])
df = pd.concat([df1, df2], axis = 1, join = 'outer')

推荐阅读