Pandas詳解二十四之寫入CSV、Excel文件

約定:

import pandas as pd
import numpy as np
import sys

寫入CSV文件

寫入csv文件是最常用的,csv文件默認用’,’作爲分隔符。

df1.to_csv(path_or_buf=None, sep=’,’, na_rep=”, float_format=None, columns=None, header=True, index=True, index_label=None, mode=’w’, encoding=None)

常用參數解釋:

path_or_buf:文件名、文件具體、相對路徑、文件流等

sep:文件分割符號

na_rep:將NaN轉換爲特定值

columns:選擇部分列寫入

header:忽略列名

index:False則選擇不寫入索引

df1=pd.DataFrame({'A':range(3),'B':list("abc"),'C':['red',np.NaN,'yellow']})
print(df1)

代碼結果:

   A  B       C
0  0  a     red
1  1  b     NaN
2  2  c  yellow

1 寫入時指定分隔符

to_csv()的sep默認爲’,’,可指定任意字符作爲分隔符

df1.to_csv(sys.stdout,sep='-')

代碼結果:

-A-B-C
0-0-a-red
1-1-b-
2-2-c-yellow

2 將NaN轉爲特定字符串

寫入時NaN會被表示爲空字符串,我們可能希望用其他值代替

df1.to_csv(sys.stdout,na_rep='NULL')

代碼結果:

,A,B,C
0,0,a,red
1,1,b,NULL
2,2,c,yellow

3 不寫入列名

df1.to_csv(sys.stdout,header=None)

代碼結果:

0,0,a,red
1,1,b,
2,2,c,yellow

4 不寫入索引

df1.to_csv(sys.stdout,index=False)

代碼結果:

A,B,C
0,a,red
1,b,
2,c,yellow

5 保留部分列且排序

df1.to_csv(sys.stdout,columns=['B','A'])

代碼結果:

,B,A
0,a,0
1,b,1
2,c,2

寫入Excel文件

對比寫入csv文件,寫入Excel文件不同的就是,當需要寫入多個Sheet時,則需要在寫入前創建一個Excel文件。

df1.to_excel(excel_writer, sheet_name=’Sheet1’, na_rep=”, float_format=None, columns=None, header=True, index=True, index_label=None, startrow=0, startcol=0, engine=None, merge_cells=True, encoding=None, inf_rep=’inf’, verbose=True, freeze_panes=None)

常用參數解釋:

excel_writer:文件名、文件具體、相對路徑、文件對象等

sheet_name:寫入時設定Sheetname,默認爲’Sheet1’

sep:文件分割符號

na_rep:將NaN轉換爲特定值

columns:選擇部分列寫入

header:忽略列名

index:False則選擇不寫入索引

1 寫入單個Sheet表格

只能寫入一個Sheet表格,多次寫入則會清除excel文件中的內容

df1.to_excel('df1.xlsx')

2 指定Sheetname

df1.to_excel('df1.xlsx',sheet_name='df1')

3 同一個Excel文件寫入多個Sheet表格

寫入多個表時,需要用到pd.ExcelWriter()打開一個Excel文件

work=pd.ExcelWriter('df2.xlsx')
df1.to_excel(work,sheet_name='df2')
df1['A'].to_excel(work,sheet_name='df3')

謝謝大家的瀏覽,
希望我的努力能幫助到您,
共勉!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章