2014-02-24 77 views
11

剛開始使用熊貓和python。使用熊貓數據框中的數據創建多個Excel工作表

我有一個工作表,我已經讀入一個數據框和應用前向填充(ffill)方法。

然後我想創建一個包含兩個工作表的單個Excel文檔。

在應用ffill方法之前,一個工作表將具有數據框中的數據,並且下一個工作表將應用已應用ffill方法的數據框。

最終我打算爲數據框的某個列中的每個唯一數據實例創建一個工作表。

話,我想申請一些VBA格式化的結果 - 但我不知道哪個DLL或插件或東西我需要調用使用Python格式的標題爲粗體Excel VBA中,並添加顏色等

我已經取得了部分成功,因爲xlsxwriter會創建一個新的工作簿並添加工作表,但dataframe.to_excel操作似乎無法在其創建的工作簿上工作簿打開但工作表爲空。

在此先感謝。

import os 
import time 
import pandas as pd 
import xlwt 
from xlwt.Workbook import * 
from pandas import ExcelWriter 
import xlsxwriter 

#set folder to import files from 
path = r'path to some file' 
#folder = os.listdir(path) 

#for loop goes here 

#get date 
date = time.strftime('%Y-%m-%d',time.gmtime(os.path.getmtime(path))) 

#import excel document 
original = pd.DataFrame() 
data = pd.DataFrame() 

original = pd.read_excel(path,sheetname='Leave',skiprows=26) 
data = pd.read_excel(path,sheetname='Leave',skiprows=26) 

print (data.shape) 
data.fillna(method='ffill',inplace=True) 

#the code for creating the workbook and worksheets 
wb= Workbook() 
ws1 = wb.add_sheet('original') 
ws2 = wb.add_sheet('result') 
original.to_excel(writer,'original') 
data.to_excel(writer,'result') 
writer.save('final.xls') 
+0

以下示例說明如何使用xlsxwriter python庫創建工作簿並插入工作表,然後從熊貓數據框(甚至基於數據框的圖表插入到Excel中)插入數據。 http://pandas-xlsxwriter-charts.readthedocs.org/chart_grouped_column.html#chart-grouped-column – yoshiserry

回答

15

你的示例代碼幾乎是正確的,除非你需要創建writer對象,你不需要使用add_sheet()方法。下面應該工作:

# ... 
writer = pd.ExcelWriter('final.xlsx') 
data.to_excel(writer,'original') 

# data.fillna() or similar. 

data.to_excel(writer,'result') 
writer.save() 
# ... 

正確的語法,這在大熊貓DataFrame.to_excel()文檔的末尾顯示。請參閱Working with Python Pandas and XlsxWriter

+0

jmcnamara - 請注意,創建多個工作簿時語法不起作用。使用xlsxwriter庫來代替我的鏈接。 – yoshiserry

+3

語法應該工作,我測試了它。另外,我寫了你鏈接到的文檔和XlsxWriter模塊。 :-) – jmcnamara

+0

jmcnamara - 接受你的答案感謝你編寫xlsxwriter模塊。我很抱歉。 – yoshiserry

相關問題