Я новичок в Python и пытаюсь автоматизировать некоторые задачи. У меня есть файл Excel с 8 листами, где на каждом листе есть некоторый идентификатор сверху и ниже, которые представляют собой табличные данные с заголовками. Каждый лист имеет идентификаторы интереса и таблицы в том же месте. Я хочу извлечь некоторые данные из верхней части каждого листа и вставить их в виде столбцов, удалить ненужные строки (после того, как я назначил некоторые из них столбцам) и столбцы, а затем объединить в один CSV-файл в качестве выходных данных.
Код, который я написал, выполняет свою работу. Мой код читает на каждом листе, выполняет операции на листе, затем я запускаю тот же процесс для следующего листа (8 раз), прежде чем использовать .concat для их объединения.
import pandas as pd
import numpy as np
inputfile = "input.xlsx"
outputfile = "merged.csv"
##LN X: READ FIRST SHEET AND ASSIGN HEADER INFORMATION TO COLUMNS
df1 = pd.read_excel(inputfile, sheet_name=0, usecols="A:N", index=0)
#Define cell locations of fields in the header area to be assigned to
columns
#THIS CELL LOCATIONS ARE SAME ON ALL SHEETS
A = df1.iloc[3,4]
B = df1.iloc[2,9]
C = df1.iloc[3,9]
D = df1.iloc[5,9]
E = df1.iloc[4,9]
#Insert well header info as columns in data for worksheet1
df1.insert(0,"column_name", A)
df1.insert(1,"column_name", B)
df1.insert(4,"column_name", E)
# Rename the columns in `enter code here`worksheet1 DataFrame to reflect
actual column headers
df1.rename(columns={'Unnamed: 0': 'Header1',
'Unnamed: 1': 'Header2', }, inplace=True)
df_merged = pd.concat([df1, df2, df3, df4, df5, df6, df7,
df8],ignore_index=True, sort=False)
#LN Y: Remove non-numerical entries
df_merged = df_merged.replace(np.nan, 0)
##Write results to CSV file
df_merged.to_csv(outputfile, index=False)
Поскольку этот код будет использоваться в других файлах Excel с различным количеством листов, я ищу любые указания о том, как включить повторяющиеся операции в каждом листе в цикле. В основном, повторяя шаги от LN X до LN Y для каждого листа (8 раз !!). Я борюсь с тем, как использовать функцию цикла. Заранее спасибо за вашу помощь.