Ich versuche derzeit, ein Programm zu erstellen, das eine CSV-Datei scannt und Einträge in der Datei mithilfe der BING-API durchsucht. Die Ergebnisse werden dann in eine Tabelle eingefügt.TypeError beim Versuch, einen CSV-Eintrag mit Hilfe von Pandas und XLSXwriter in die Kalkulationstabelle einzufügen
Ein Teil dieses Makros beinhaltet auch das Einfügen in die Tabelle, welcher Begriff gesucht wird, also kopiere ich effektiv einen Eintrag aus der CSV in eine Tabelle, was sinnlos klingt, aber eine wichtige Rolle spielt.
Meine CSV sieht wie folgt aus:
EntryNumber Name Company TitleNumber
123 john hsbc 5555
124 chris ford 6666
125 adam apple 7777
I Pandas verwenden, um die Daten aus der CSV zu extrahieren, indem es durch sie Zeile für Zeile laufen, mit diesem Code:
für Index, Zeile in df .iterrows():
entrynumber = row['EntryNumber']
name = row['Name']
company = row['Company']
title = row['TitleNumber']
Dann versuche ich und schreibe eine der Variablen auf eine Zelle in der Tabelle mit xlsxwriter:
worksheet.write(row, col, entrynumber)
jedoch diese einen Typfehler erzeugt, ist die Rückverfolgung unter:
Traceback (most recent call last):
File "CSVtest.py", line 68, in <module>
worksheet.write(row, col, entrynumber)
File "/usr/local/lib/python3.5/site-packages/xlsxwriter/worksheet.py", line 57, in cell_wrapper
int(args[0])
File "/usr/local/lib/python3.5/site-packages/pandas/core/series.py", line 92, in wrapper
"{0}".format(str(converter)))
TypeError: cannot convert the series to <class 'int'>
Exception ignored in: <bound method Workbook.__del__ of <xlsxwriter.workbook.Workbook object at 0x1088118d0>>
Traceback (most recent call last):
File "/usr/local/lib/python3.5/site-packages/xlsxwriter/workbook.py", line 148, in __del__
Exception: Exception caught in workbook destructor. Explicit close() may be required for workbook.
Keine Ahnung, warum dies geschieht, habe ich versucht, die Variablen in Strings konvertiert werden, aber die Fehlermeldung erscheint immer noch, jemand irgendwelche Ideen?
Jede Hilfe wird sehr geschätzt :) Danke.
Das Argument * row * erwartet bei jeder Iteration einen einzelnen Wert. Im Moment übergibst du eine ganze "Serie", während die Reihe während der Paarung Tupel (Index, Serie) zu einer Serie wird. Daher erhalten Sie diesen Fehler. Stattdessen fühle ich, dass Arg als Index (Zeilennr.) Passender wäre. –