Как получить доступ к данным на листе XLSX, где некоторые поля ссылаются на другие листы?

#python #pandas #xlrd

#python #pandas #xlrd

Вопрос:

введите описание изображения здесь

Значение 18F-AV-1451-A07 относится к другому листу под названием «СОДЕРЖИМОЕ», в котором столбец «B» и строка «3».

Я загрузил фрейм данных с помощью кода

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

введите описание изображения здесь

Я получаю нулевое значение в этом столбце «Определение преобразования» вместо «18F-AV-1451-A07».

как я могу получить эти данные в моем фрейме данных, и я не хочу делать это жестко.

Комментарии:

1. Можете ли вы загрузить образец набора данных, чтобы нам не приходилось создавать образец набора данных самостоятельно, и мы могли быть уверены, что наше решение работает.

2. Во-первых, я бы посоветовал вам удалить свой идентификатор электронной почты, во-вторых, нет никакого способа обойти это, вам придется написать пользовательскую функцию, на данный момент нет способа сделать dataframe осведомленным о нескольких листах и создать динамическую связь между ними, извините : (

3. Эй, взгляните на это, я думаю, это то, что вы ищете colab.research.google.com/drive /…

Ответ №1:

Во-первых, я на самом деле не решал эту проблему, я воспользовался помощью пользователя 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, формат ODS не поддерживается pandas.