目的:將資料夾中所有EXCEL讀取後各自計算最後合併成一個EXCEL,新的EXCEL裡有多個表單
問題:
目前我寫出來的範例如下
#將路徑下副檔名xlsx的取出
import openpyxl
path_domestic = os.path.abspath(os.getcwd()) + '\globle'
non_domestic = glob.glob(os.path.join(path_domestic, '*.xlsx'))
#寫迴圈並計算所需要的資料
for file in non_domestic:
data = pd.read_excel(file)
TQ = data["Qty"].sum()
amount = data['Px'] * data['Qty']
data['Amount'] = amount #新增一欄
#新增一列並寫到data1
new = pd.DataFrame({'Security': '',
'交易所代碼': '',
'Qty': TQ,
'Px': '',
'Fill Time': '',
'Exec Brkr': '',
'Maker/Taker': '',
'Amount': TAmount,
'N': Aver_P}, index=[1])
data1 = data.append(new, ignore_index=True)
#取得股票名稱
name = str(data["Security"][1])
print(data1)
現在問題是我要如何將多個dataframe寫入到一個EXCEL裡?
因為我用data1.to_excel('20210126.xlsx',sheet_name = name)
這樣只會產生一個表單(迴圈會覆蓋過原有檔案)
下圖是資料夾中其中一個檔案
我猜是因為 append 並沒有累加
每次的 data1 都會被新的蓋過
可以調整看看
data1 = []
for ...
data1 = data1.append(new, ignore_index=True)
或是參考下面文章把 data1.to_excel() 放到迴圈裡
pandas.DataFrame.to_excel
Example: Pandas Excel with multiple dataframes
for ...
with pd.ExcelWriter('20210126.xlsx') as writer:
data1.to_excel(writer, sheet_name= name)