一、參考資料
[1].pandas.DataFrame.to_excel
[2].Working with Python Pandas and XlsxWriter
二、程序示例
1.?pandas.DataFrame.to_excel最簡單的寫入
?當寫入的文件只占有一個sheet時,可以利用pandas.DataFrame.to_excel()直接寫入。該函數的用法如下,關于參數的具體介紹,可以參考參考資料[1]的內容。
DataFrame.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)
# 1. 基本模塊的導入
import
numpy
as
np
import
pandas
as
pd
# 2. 創建寫入數據
DF_1
=
pd
.
DataFrame
(
np
.
random
.
rand
(
12
)
.
reshape
(
6
,
2
)
,
columns
=
list
(
'AB'
)
)
# 3. 將數據寫入excel
DF_1
.
to_excel
(
r
'C:\Users\Desktop\ExcelTest\DF_1.xlsx'
,
sheet_name
=
'DF_1'
,
index
=
False
)
print
(
'DF_1 has been finished.'
)
2.?將多個數據框寫入同一個Excel文件的不同Sheet中
# 1. 基本模塊的導入
import
numpy
as
np
import
pandas
as
pd
# 2. 創建不同的寫入數據
DF_1
=
pd
.
DataFrame
(
np
.
random
.
rand
(
12
)
.
reshape
(
6
,
2
)
,
columns
=
list
(
'AB'
)
)
DF_2
=
pd
.
DataFrame
(
np
.
random
.
rand
(
12
)
.
reshape
(
6
,
2
)
,
columns
=
list
(
'CD'
)
)
+
1
DF_3
=
pd
.
DataFrame
(
np
.
random
.
rand
(
12
)
.
reshape
(
6
,
2
)
,
columns
=
list
(
'EF'
)
)
+
2
DF_4
=
pd
.
DataFrame
(
np
.
random
.
rand
(
12
)
.
reshape
(
6
,
2
)
,
columns
=
list
(
'GH'
)
)
+
3
# 3. 數據寫出
with
pd
.
ExcelWriter
(
r
'C:\Users\Desktop\ExcelTest\DF_All.xlsx'
)
as
writer
:
DF_1
.
to_excel
(
writer
,
sheet_name
=
'DF_1'
)
DF_2
.
to_excel
(
writer
,
sheet_name
=
'DF_2'
)
DF_3
.
to_excel
(
writer
,
sheet_name
=
'DF_3'
)
DF_4
.
to_excel
(
writer
,
sheet_name
=
'DF_4'
)
writer
.
save
(
)
writer
.
close
(
)
print
(
'Finished.'
)
3.?基于函數將多個數據框寫入同一個Excel文件的不同Sheet中
# 1. 基本模塊的導入
import
os
import
numpy
as
np
import
pandas
as
pd
from
openpyxl
import
load_workbook
# 2. 函數定義
def
ExcelAddSheet
(
df
,
outfile
,
sheetname
)
:
writer
=
pd
.
ExcelWriter
(
outfile
,
engine
=
'openpyxl'
)
# engine貌似是操作xlsx文件的引擎,此處用openpyxl
# 2.1 檢查.xlsx文件是否存在,不存在則先創建
if
os
.
path
.
exists
(
outfile
)
!=
True
:
df
.
to_excel
(
writer
,
sheet_name
=
sheetname
,
index
=
False
)
# index=False,表示忽略行索引
else
:
# book這句及后面的writer.book = book必須存在,否則sheet會被覆蓋(為什么?)
book
=
load_workbook
(
writer
.
path
)
writer
.
book
=
book
df
.
to_excel
(
writer
,
sheet_name
=
sheetname
,
index
=
False
)
writer
.
save
(
)
writer
.
close
(
)
# 3. 測試函數
f
=
lambda
x
,
y
:
x
+
y
# 輔助列名的構建
for
ii
in
range
(
1
,
5
)
:
Columns
=
[
f
(
i
,
'_'
+
str
(
ii
)
)
for
i
in
list
(
'AB'
)
]
DF
=
pd
.
DataFrame
(
np
.
random
.
rand
(
12
)
.
reshape
(
6
,
2
)
,
columns
=
Columns
)
ExcelAddSheet
(
DF
,
r
'C:\Users\Desktop\ExcelTest\DF_All_Test.xlsx'
,
'DF'
+
'_'
+
str
(
ii
)
)
print
(
'Finished.'
)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
