首页 > 解决方案 > 如何访问 XLSX 工作表中的数据,其中某些字段被引用到另一个工作表?

问题描述

在此处输入图像描述

18F-AV-1451-A07 值是指另一张名为“CONTENT”的表格,其中“B”列和“3”行。

我已经使用代码加载了数据框

pd.read_excel('data/A07.xls',sheet_name = 'DM',skiprows = 12, skipfooter = 2)

在此处输入图像描述

我在“转换定义”列中得到空值,而不是“18F-AV-1451-A07”。

我怎样才能在我的数据框中获取该数据,并且我不想进行硬编码。

标签: pythonpandasxlrd

解决方案


First Credits,我实际上并没有解决这个问题,我从用户 U9-Forwrad 那里得到了帮助,现在你需要这样做


import pandas as pd
xlsx = pd.ExcelFile('Sample.xlsx')
df1 = pd.read_excel(xlsx, 'CONTENT', header=None)
df2 = pd.read_excel(xlsx, 'Sheet2')
boolean = df2['Class'].isin(df1[0].fillna(df1[1]).dropna())
idxs = boolean.index[boolean == True]
print(df2.iloc[idxs[0]:idxs[1]+1])

这给了你

         Day Month Class
1    tuesday   Feb    CM
2  Wednesday   Mar   NaN
3   Thursday   Apr   NaN
4     Friday   May   NaN
5   Saturday   Jun   NaN
6     Sunday   Jul    DM

我认为这是您正在寻找的。

注意:您需要将文件转换为 xlsx,pandas 不支持 ODS 格式。


推荐阅读