2016-07-18 25 views
2

einen Datenrahmen Schreiben:Pandas to_excel, um einen Datenrahmen zu schreiben, führt zu einer leeren Tabelle - wie schreibt man Excel mit xlwt?

New_DF = 
      caviae species murliniae freundii braakii freundii cloacae \ 
15368485  NaN  NaN  NaN  NaN  NaN  NaN  NaN 
15368486  NaN  NaN  NaN   1  NaN   1  NaN 
15368487  NaN  NaN  NaN  NaN  NaN  NaN  NaN 
15368488  NaN  NaN  NaN  NaN  NaN  NaN  NaN 
15368489  NaN  1  NaN  NaN  NaN  NaN  NaN 

etc auf eine .xls-Tabelle, Arbeitsmappe 'Tabelle1':

import StringIO 
import pandas as pd 
import xlwt 

New_DF = pd.DataFrame(SpeciesCount,labNo,Species) 

xlwt_writer = pd.io.excel.get_writer('xlwt') 

my_writer = xlwt_writer('C:\Users\Georgina\Documents\Test\1291707 STS Excel Extract.xls') 

xl_out = StringIO.StringIO() 
my_writer.path = xl_out 
New_DF.to_excel(my_writer,sheet_name='Sheet1',startrow = 4) 
my_writer.save() 

Dies ändert nichts an der .xls-Datei oder Ausgabe einer Fehlermeldung

Jede Hilfe sehr geschätzt

+0

Was soll 'xl_out' tun? Das ist wahrscheinlich leer und setzt den Pfad von xlwt_writer auf None oder die leere Zeichenfolge zurück. – miraculixx

+0

Ich habe das vom Lesen verschiedener Hilfeseiten bekommen: http://stackoverflow.com/questions/28058563/write-to-stringio-object-using-pandas-excelwriter Ich habe das xl_out auf den Pfad geändert, in dem sich die Datei befindet & Jetzt hat es ein Problem mit der Zeile my_writer.save(). Es gibt mir den Fehler: "in speichern f = öffnen (file_name_or_filelike_obj, 'w + b') IOError: [Errno 13] Berechtigung verweigert: 'C: \\ Benutzer \\ Georgina \\ Dokumente \\ Software Development \\ Bacti Kommentare Auto-sort '" –

+0

Ich habe Berechtigungen für dieses Verzeichnis nach Windows exporer –

Antwort

0

Versuchen Sie dies:

import StringIO 
import pandas as pd 
import xlwt 

New_DF = pd.DataFrame(SpeciesCount,labNo,Species) 

writer = pd.ExcelWriter('C:\Users\Georgina\Documents\Test\1291707 STS Excel Extract.xls', engine='xlwt') 
New_DF.to_excel(writer, sheet_name='Sheet1', startrow = 4) 
writer.save()