1. 程式人生 > 其它 >Excel & Python | 盛菜拼盤——結果匯出 | 10

Excel & Python | 盛菜拼盤——結果匯出 | 10

目錄

匯出為.xlsx檔案

設定檔案匯出路徑

設定檔案匯出路徑就是告訴Python要將這個檔案匯出到電腦的哪個資料夾裡,且匯出以後這個檔案叫什麼。通過調整引數excel_writer的值即可實現。

上面程式碼表示將表df匯出到桌面,且匯出以後的檔名為測試文件,匯出以後的文件如下所示。

需要注意的是,如果同一匯出檔案已經在本地開啟,則不能再次執行匯出程式碼,會報錯,需要將本地檔案關閉以後再次執行匯出程式碼。這有點類似於在本地修改檔名的操作,如果檔案是開啟的,即被佔用的狀態,那麼不可以執行修改檔案的操作。

設定Sheet名稱

.xlsx格式的檔案有多個Sheet,Sheet的預設命名方式是Sheet後加阿拉伯數字,通常從 Sheet1往上遞增,我們也可以對預設的 Sheet 名字進行修改,只要修改sheet_name引數即可,具體實現如下所示。

執行上面程式碼以後,匯出到本地檔案的Sheet名字將從原來的Sheet1變成測試文件。

設定索引

上面匯出檔案中關於索引的引數都是預設的,也就是沒有對索引做什麼限制,但是我們可以看到index索引使用的是從0開始的預設自然數索引,這種索引是沒有意義的,設定引數index=False就可以在匯出時把這種索引去掉,具體實現如下所示。

上面程式碼執行的結果如下圖所示,從0開始的自然數索引沒有被展示出來。

設定要匯出的列

有的時候一個表的列數很多,我們並不需要把所有的列都匯出,這個時候就可以通過設定columns引數來指定要匯出的列,這和匯入時設定只匯入部分列的原理類似,程式碼如下所示。

下圖為只匯出使用者ID、7月銷量、8月銷量、9月銷量的結果檔案。

設定編碼格式

我們在匯入檔案時需要設定編碼格式,匯出檔案的時候同樣也需要,修改編碼格式的引數與匯入檔案時的一致,也使用的encoding,encoding引數值一般選擇"utf-8"。

缺失值處理

雖然我們在前面的資料預處理過程中已經處理了缺失值,但是在資料分析過程中也可能會產生一些缺失值,如果在匯出的時候,資料表中有缺失值,那麼就要對錶中的缺失值進行填充,使用的引數為na_rep,具體實現如下所示。

無窮值處理

無窮值(inf)與缺失值(Nan)都是異常資料,當你用一個浮點數除以0時,就會得到一個無窮值,無窮值的存在會導致接下來的計算報錯,所以需要對無窮值進行處理。

下面的資料表中含有inf值,要把inf值替換掉,就要設定引數inf_rep的值。

把inf_rep的值填充為0,具體實現如下所示。

下圖為匯出到本地的文件,可以看到inf值已經被替換成0了。

匯出為.csv檔案

設定檔案匯出路徑

設定.csv 檔案的匯出路徑時,與設定.xlsx 檔案的匯出路徑一樣,但是引數不一樣,.csv檔案的匯出路徑需通過path_or_buf引數來設定。

匯出.csv檔案時的注意事項與匯出.xlsx檔案時的注意事項一致:如果同一匯出檔案已經在本地開啟,則不能再次執行匯出程式碼,那樣會報錯,需要將本地檔案關閉以後再執行匯出程式碼。

設定索引

匯出.csv 檔案時與匯出.xlsx 檔案時對索引的設定是一致的,可以通過設定 index引數,讓從0開始的預設自然數索引不展示出來。

設定要匯出的列

匯出.csv檔案時也可以設定要匯出哪些列,用的引數同樣是columns。

設定分隔符

分隔符號就是用來指明匯出檔案中的字元之間是用什麼來分隔的,預設使用逗號分隔,常用的分隔符號還有空格、製表符、分號等。用引數sep來指明要用的分隔符號。

設定編碼格式

在Python 3中,匯出為.csv檔案時,預設編碼為UTF-8,如果使用預設的UTF-8編碼格式,匯出的檔案在本地電腦開啟以後中文會亂碼,所以一般使用utf-8-sig或者gbk編碼。

缺失值處理

匯出.csv檔案時用的缺失值處理方法與匯出.xlsx檔案時用的缺失值處理方法是一樣的,也是通過引數na_rep來指明要用什麼填充缺失值。

將檔案匯出為多個sheet

有的時候一個指令碼一次會生成多個檔案,可以將多個檔案分別匯出成多個檔案,也可以將多個檔案放在一個檔案的不同 Sheet 中,這個時候要用 ExcelWriter()函式將多個檔案分別匯出到不同Sheet中,具體方法如下:

小結

匯出為xlsx
	to_excel()
		引數 excel_writer 儲存路徑
		引數 sheet_name 修改sheet表名
		引數 index (False/True) 設定為False 則不匯出索引(如果要索引的話,一般先 reset_index)
		引數 columns 設定要匯出的列
		引數 encoding='utf-8'
		引數 na_rep=0 處理缺失值
		引數 inf_rep=0 處理無窮值

匯出為csv
	to_csv()
		引數 path_or_buf 儲存路徑
		引數 index (False/True) 設定為False 則不匯出索引(如果要索引的話,一般先 reset_index)
		引數 encoding='utf-8'
		引數 columns 設定要匯出的列
		引數 na_rep=0 處理缺失值
		引數 inf_rep=0 處理無窮值
		引數 sep=',' 設定分隔符

匯出為多個Sheet
	pd.ExcelWriter()