我有 5 張紙并創建了一個腳本來進行多種格式設定,我對每張紙進行了測驗,并且效果很好。
import numpy as np
import pandas as pd
FileLoc = r'C:\T.xlsx'
Sheets = ['Alex','Elvin','Gerwin','Jeff','Joshua',]
df = pd.read_excel(FileLoc, sheet_name= 'Alex', skiprows=6)
df = df[df['ENDING'] != 0]
df = df.head(30).T
df = df[~df.index.isin(['Unnamed: 2','Unnamed: 3','Unnamed: 4','ENDING' ,3])]
df.index.rename('STORE', inplace=True)
df['index'] = df.index
df2 = df.melt(id_vars=['index', 2 ,0, 1] ,value_name='SKU' )
df2 = df2[df2['variable']!= 3]
df2['SKU2'] = np.where(df2['SKU'].astype(str).fillna('0').str.contains('ALF|NOB|MET'),df2.SKU, None)
df2['SKU2'] = df2['SKU2'].ffill()
df2 = df2[~df2[0].isnull()]
df2 = df2[df2['SKU'] != 0]
df2[1] = pd.to_datetime(df2[1]).dt.date
df2.to_excel(r'C:\test.xlsx', index=False)
但是當我在Sheet_name = Sheets其中分配一個串列時,總是會產生一個錯誤KeyError: 'ENDING'。這部分代碼:
Sheets = ['Alex','Elvin','Gerwin','Jeff','Joshua',]
df = pd.read_excel(FileLoc,sheet_name='Sheets',skiprows=6)
有沒有合適的方法來做到這一點,比如回圈?
我的預期結果是執行我創建的格式并將其合并到一個 excel 檔案中。
注意:所有作業表都具有相同的格式。

uj5u.com熱心網友回復:
在使用該read_excel方法時,如果您提供引數sheet_name=None,這將為您OrderedDict提供以作業表名稱作為鍵和相關資料幀作為值的 a 。因此,您可以應用它并使用.items().
代碼看起來像這樣,
dfs = pd.read_excel('your-excel.xlsx', sheet_name=None)
for key, value in dfs.items():
# apply logic to value
如果您希望合并作業表中的資料,您可以使用.append(). 我們可以在將邏輯應用于每個作業表中的資料后附加資料。看起來像這樣,
combined_df = pd.DataFrame()
dfs = pd.read_excel('your-excel.xlsx', sheet_name=None)
for key, value in dfs.items():
# apply logic to value, which is a DataFrame
combined_df = combined_df.append(sheet_df)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/343395.html
