Я ввел условия, где в первом условии извлекается ячейка, ячейка, где ' Находится Вход (номер) Этаж', и если условие выполнено, то данные берутся из ячейки ниже, которая на одну ячейку ниже
Код: Выделить всё
# reading the Excel file
file_path = 'C:\\Users\\lubom\\python\\pythonPdf\\pokusnew_zaverecna.xlsx'
xls = pd.ExcelFile(file_path)
results = []
# Scrolling through all sheets in an Excel file
for sheet_name in xls.sheet_names:
df = pd.read_excel(xls, sheet_name=sheet_name)
# Initialization of lists for individual data types
poschodie_list = []
for col in df.columns:
for row_idx in range(len(df)):
cell = df.at[row_idx, col]
if pd.notna(cell) and isinstance(cell, str):
if cell.strip() == 'Vchod (číslo) Poschodie': # A condition for processing a specific string
if row_idx + 1 < len(df):
next_cell = df.at[row_idx + 1, col]
if pd.notna(next_cell) and isinstance(next_cell, str):
# Splits the string from the back and takes only the last segment after the last space
last_part = next_cell.rsplit(' ', 1)[-1] if ' ' in next_cell else next_cell
poschodie_list.append(last_part.strip())
# print(poschodie_list)
else:
poschodie_list.append('') # An empty string if the next cell contains no text
elif 'Poschodie' in cell:
if cell.strip() == 'Poschodie': # Control for Poschodie
if row_idx + 1 < len(df):
next_cell = df.at[row_idx + 1, col]
poschodie_list.append(next_cell.strip() if pd.notna(next_cell) else '')
#print(poschodie_list)
else:
poschodie_list.append('')
else:
poschodie_list.append(cell.replace('Poschodie', '').strip())
results = []
for i in range(len(poschodie_list)):
poschodie = poschodie_list[i] if i < len(poschodie_list) else ''
results.append([poschodie])
columns = ['Poschodie']
results_df = pd.DataFrame(results, columns=columns)
# Uloženie výsledkov do nového Excel súboru
output_file_path = 'vysledky_zaverecna.xlsx'
results_df.to_excel(output_file_path, index=False)
print(f'Výsledky boli uložené do súboru {output_file_path}')
Результаты хорошие, проблема в том, что порядок не совпадает.
Он сохраняет мои условия индивидуально, хотя они находятся в одном столбце, но он сохраняет все результаты одного условия подряд, а результаты второго условия ниже результатов первого условия.
Мне нужно, чтобы результаты сохранялись по мере передачи файла.< /p>
Может ли кто-нибудь помочь мне решить эту проблему?
Подробнее здесь: https://stackoverflow.com/questions/787 ... conditions