2014-02-24 79 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

相关问题