讀取、儲存成 Excel 檔
讀取與儲存 .xlsx 檔,只需安裝 openpyxl 套件。
pip install openpyxl
底下代碼將把 px 取得的 df ,存成 gdp.xlsx 的 Excel 檔,其中的 index=None 表示 df 的 index 不會儲存到 Excel 檔案中。
import plotly_express as px
df=px.data.gapminder().query('year==2007')
df.to_excel("gdp.xlsx", sheet_name='Sheet1', index=None)
請注意上述的 to_excel 會把原本的檔案刪除並重建新檔案,所以原先的檔案若有其它的工作表,都會一併不見。
讀取舊版 .xls 檔
若要讀取舊版的 .xls 檔,還需安裝 xlrd 套件。
pip install xlrd
底下代碼由 pd.read_excel 讀取 Excel 檔。
sheet_name=None 時,會把所有的工作表全都讀入,若沒有指定,則只讀取第一張工作表,若要指定某幾張工作表,可用如下方法指定
sheet_name=['202401', '202402']
index_col 是指定由第幾欄當作索引,如果沒有指定,則使用列數當索引。
keep_default_na = True 時,Excel 中沒有資料的儲存格將顯示 Nan。keep-default_na=False 時,沒有資料的儲存格將顯示空字串。
import pandas as pd
df=pd.read_excel("gdp.xlsx", sheet_name='Sheet1',index_col=0, keep_default_na=False)
print(df)
修改 xlsx
若只想取代某個工作表,並保留其它的工作表,就需使用如下方式。
with pd.ExcelWriter(file, mode='a', engine='openpyxl', if_sheet_exists="replace") as writer:
df.to_excel(writer, sheet_name=sheetname, index=False)
if_sheet_exists 是如果工作表已存在,則使用 replace 取代原工作表。
if_sheet_exists 有四種模式。
error : 直接丟出錯誤
new : 保留原先工作表(Sheet1),然後建立新的工作表,名稱為 Sheet11, Sheet12….
replace : 刪除原先工作表,然後建立新的工作表
overlay : 從指定的位置覆寫儲存格,通常會再加入 startrow=xxx, startcol=xxx。
