Pandas : to_csv() got an unexpected keyword argument
Während ich bin versucht, einige der Parameter, die in dataframe to_csv Funktion, wird ein TypeError, wie `TypeError: to_csv() got an unexpected keyword argument 'doublequote'
df.to_csv('transactions.x', header=False, doublequote=False)
oder
df.to_csv('transactions.x', doublequote=False)
Meine pandas version 0.19.2 (Geprüft mit print(pd.__version__)
)
Ich bin mit Python 3.5
Den folgenden offiziellen Dokument basiert auf 0.19.2. Obwohl, ich habe Fehler, es wird festgestellt, dass diese Parameter können verwendet werden, als optional.
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_csv.html
Habt Ihr irgendwelche Ahnung davon?
Danke.
LÖSUNG
Danke für brain-storming mit allen Kommentatoren.
Nachdem Sie mit dem folgenden Befehl df = df.groupby(['Transactions'])['Items'].apply(','.join)
dataframe wird Serie.
Um die cast-Serie zu dataframe, dieser Befehl df = df.groupby(['Transactions'])['Items'].apply(','.join).to_frame()
sollte stattdessen verwendet werden.
Schließlich, exportieren Sie Sie als CSV mit nicht-Zitat-Stil durch die Vermeidung von escape-char, Sie müssen am Ende mit dem folgenden Befehl
df.to_csv('transactions.x', header=False, quoting=csv.QUOTE_NONE, escapechar=' ')
#oder was auch immer escapechar.
Hoffentlich, hilft es, für alle.
Dank
- sorry, did you pass
doublequote
oder'doublequote'
? Poste bitte code, der reproduziert diese Fehler - df.to_csv('Transaktionen.x', header=False, doublequote=False)
- df.to_csv('Transaktionen.x' doublequote=False)
- beide bringen dasselbe TypeError Problem.
- Sorry, das funktioniert gut für mich, können Sie starten Sie Ihre python-kernel, um zu sehen, ob dies ein vorübergehendes Problem
- Eigentlich ist das, was ich denke, ist, Nachdem ich den folgenden Befehl ausführen,
df = pd.read_sql (......, connection)
ich anrufen kanndf.to_csv('transactions.x', header=False, doublequote=False)
erfolgreich, denn das Ergebnis ist ein dataframe-Objekt, aber wenn ich weiterhin etwas tun, mit df-Objekt wiepython df = df.groupby(['Transactions'])['Items'].apply(','.join)
den Befehlpython df.to_csv('transactions.x', header=False, doublequote=False)
ungültig. So, wie die Besetzung der apply-Funktion zu dataframe um diese optionalen Parameter? Danke. - Hmm, ich denke nicht, dass du eine
DataFrame
sondern eineSeries
die keine paramdoublequote
: siehe pandas.pydata.org/pandas-docs/stable/generated/..., was bedeutetprint(type(df))
zeigen nach den groupby? Es sieht für mich so entstünden eine Reihe, Sie können dies beheben, indem tundf.to_frame().to_csv()
Konvertierung vonSeries
zu einemDataFrame
- Versuchen, meine Antwort, die
groupby
ist wieder einSeries
weil Sie wählen Sie eine einzelne Spalte aus dergroupby
Objekt
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wäre diese Hilfe:
Wie pro Ihren Kommentar, Lesen docs auf Serie.
Können Sie
to_frame
vor dem speichern, um Ihr Problem zu beheben.df = df.groupby(['Transactions'])[['Items']].apply(','.join)
wirft den gleichen Fehler, auf der anderen Seite, wenn ich Sie benutzen willdf = df.groupby(['Transactions'])[['Items']].apply(','.join).to_frame()
es nicht werfen Fehler, aber die Ausgabe ist mit den "Gegenständen" anstelle der realen Gegenstände, wie a, b, c, .... Wenn ich die Letzte optiondf = df.groupby(['Transactions'])['Items'].apply(','.join).to_frame()
es schmeißt die folgendenerror _csv.Error: need to escape, but no escapechar set
Ihre
groupby
Aufruf erzeugt eine Reihe, für die es keinedoublequote
param, konvertieren, um ein DataFrame aufrufento_frame()
vor dem Aufrufto_csv
Diese:
ist die Gruppierung von df, aber dann wählen Sie eine einzelne Spalte und rufen Sie
apply
diese zurückSeries
damit Ihren FehlerDanke für brain-storming mit allen Kommentatoren.
Nachdem Sie mit dem folgenden Befehl
df = df.groupby(['Transactions'])['Items'].apply(','.join)
dataframe wird Serie.Um die cast-Serie zu dataframe, dieser Befehl
df = df.groupby(['Transactions'])['Items'].apply(','.join).to_frame()
sollte stattdessen verwendet werden.Schließlich, exportieren Sie Sie als CSV mit nicht-Zitat-Stil durch die Vermeidung von escape-char, Sie müssen am Ende mit dem folgenden Befehl
df.to_csv('transactions.x', header=False, quoting=csv.QUOTE_NONE, escapechar=' ')
#oder was auch immer escapechar.Hoffentlich, hilft es, für alle. Dank
to_frame
wie vorgeschlagen, @zipa Antwort unten, oder zumindest ich bin mir selbst nicht sicher, warum Sie benötigen, dass auf aufwändige Art und Weise, dass Sie verwenden Sie hier.