In Pandas kannst du einen DataFrame mit der Methode df.to_csv('ihr_dateiname.csv', index=False) in eine CSV-Datei speichern, wobei df dein DataFrame ist und index=False verhindert, dass eine Indexspalte hinzugefügt wird.
Wenn du einen DataFrame erstellst oder einen bestehenden modifizierst, möchtest du ihn vielleicht exportieren, damit andere Personen damit arbeiten können, oder du kannst ihn für deine zukünftige Arbeit speichern. Es kann zum Beispiel sein, dass du deinem Prüfer eine Vorhersage aus einem maschinellen Lernprojekt vorlegen oder einen geänderten Datensatz an einen Kollegen schicken musst.
In Python kannst du einen DataFrame mit der Methode.to_csv() von Pandas als CSV-Datei exportieren .
In diesem Artikel führe ich dich durch die wichtigsten Schritte des Prozesses und erkläre die Parameter der Methode.
Ersetze 'your_file_name.csv' durch den gewünschten Namen und Pfad für deine Datei. Das Argument index=False verhindert, dass Pandas eine Indexspalte zu deiner CSV hinzufügt.
Einen Pandas DataFrame erstellen
Schauen wir uns jetzt die längere Antwort an. Anstatt einen DataFrame von Grund auf neu zu erstellen, importiere ich einen Datensatz, ändere ihn und speichere den resultierenden DataFrame im CSV-Format. Der erste Schritt besteht darin, die notwendigen Bibliotheken zu importieren:
import pandas as pd
import seaborn as sns
from sklearn.preprocessing import MinMaxScalerBereitgestellt von
Dann können wir einen seaborn -Datensatz importieren. Der importierte Datensatz ist bereits ein Pandas DataFrame, wir müssen ihn also nicht umwandeln.
# We’ll import the 'titanic' dataset from seaborn
df = sns.load_dataset('titanic')print(df.head())Bereitgestellt von
survived pclass sex age sibsp parch fare embarked class
0 0 3 male 22.0 1 0 7.2500 S Third
1 1 1 female 38.0 1 0 71.2833 C First
2 1 3 female 26.0 0 0 7.9250 S Third
3 1 1 female 35.0 1 0 53.1000 S First
4 0 3 male 35.0 0 0 8.0500 S Third
who adult_male deck embark_town alive alone
0 man True NaN Southampton no False
1 woman False C Cherbourg yes False
2 woman False NaN Southampton yes True
3 woman False C Southampton yes False
4 man True NaN Southampton no True Bereitgestellt von
Ändern eines Pandas DataFrame
Nun wollen wir einen neuen DataFrame erstellen. Da ich dieMethode.to_csv()von Pandas erkunden möchte, werde ich nur eine Min-Max-Normalisierung für numerische Variablen durchführen.
scaler = MinMaxScaler()# Choose the columns that have integer or float data-types
numerical columns - df.select_dtypes(include=['float64','int64']).columns
new_df = df.copy()# The min-max scaler will represent all numbers on a 0-to-1 scale
new_df[numerical_columns]= scaler.fit_transform(df[numerical_columns])print(new_df.head())Bereitgestellt von
survived pclass sex age sibsp parch fare embarked
0 0.0 1.0 male 0.271174 0.125 0.0 0.014151 S
1 1.0 0.0 female 0.472229 0.125 0.0 0.139136 C
2 1.0 1.0 female 0.321438 0.000 0.0 0.015469 S
3 1.0 0.0 female 0.434531 0.125 0.0 0.103644 S
4 0.0 1.0 male 0.434531 0.000 0.0 0.015713 S
class who adult_male deck embark_town alive alone
Third man True NaN Southampton no False
First woman False C Cherbourg yes False
Third woman False NaN Southampton yes True
First woman False C Southampton yes False
Third man True NaN Southampton no True Bereitgestellt von
Einen Pandas DataFrame als CSV speichern
Wir verwenden die MethodeDataFrame.to_csv(), um den geänderten DataFrame als CSV-Datei zu speichern.
Die Art und Weise, wie ich diese Methode aufgerufen habe, stellte sicher, dass alle Parameter auf ihre Standardwerte gesetzt wurden. Jetzt stelle ich dir die Parameter vor und zeige dir, wie du ihre Werte nach deinen Bedürfnissen ändern kannst.
Parameter von DataFrame.to_csv() Erläutert
Hier ist die gleiche Methode .to_csv() mit allen Parametern aufgeführt:
Einige dieser Parameter sind optional, wie z.B. columns,encoding,quoting,lineterminator und storage_options, also setze ich nur Werte für sie, nicht unbedingt Standardwerte.
Der erste Parameter kann entweder ein String sein, der den Namen der Datei angibt, oder ein Dateiobjekt. Schau dir dieses Beispiel an:
withopen('new_titanic.csv','w', encoding ='utf=8')asfile:
new_df.to_csv(file)Bereitgestellt von
Trennzeichen und fehlende Werte
Der nächste Parameter ist das Trennzeichen, das angibt, wie die Daten getrennt werden. Das Standard-Trennzeichen ist das Komma, aber wir können es in einen Tab oder ein Semikolon ändern. Ein Tabulator oder Semikolon als Trennzeichen kann nützlich sein, wenn deine exportierten Daten ein bestimmtes Format haben müssen. Auch bei Daten, die Kommas enthalten, wie z.B. bei Texten, kann die Verwendung des Kommas als Trennzeichen zu unerwünschten Änderungen führen.
Wenn du zum Beispiel "Hallo, Welt "als Datenpunkt hast , brauchst du, wenn du das Komma als Trennzeichen verwenden willst, auch Anführungszeichen, damit es ein einzelner Datenpunkt bleibt. Die Verwendung eines Tabulators oder Semikolons als Trennzeichen kann die bessere Option sein, da es weniger Speicherplatz benötigt als die Verwendung von Kommas und Anführungszeichen.
new_df.to_csv('new_titanic.csv', sep ='\t')
new_df_tab = pd.read_csv('new_titanic.csv')Bereitgestellt von
0\t0\t3\tmale\t22.0\t1\t0\t7.25\tS\tThird\tman...
1\t1\t1\tfemale\t38.0\t1\t0\t71.2833\tC\tFirst...
2\t1\t3\tfemale\t26.0\t0\t0\t7.925\tS\tThird\t...
3\t1\t1\tfemale\t35.0\t1\t0\t53.1\tS\tFirst\tw...
4\t0\t3\tmale\t35.0\t0\t0\t8.05\tS\tThird\tman... Bereitgestellt von
Der dritte Parameter, na_rep, bezieht sich auf die Darstellung der fehlenden Werte. Üblicherweise lässt du die Zelle leer und fügst ‘NaN’ oder ‘Na’ ein, aber du kannst auch deine eigene Zeichenfolge einfügen. Im folgenden Beispiel werde ich für jeden fehlenden Wert ‘Datacamp’ einfügen.
new_df.to_csv('new_titanic.csv', na_rep='Datacamp')
new_df_datacamp = pd.read_csv('new_titanic.csv')
new_df_datacamp = pd.DataFrame(new_df_datacamp)#find the missing values
missing_values = new_df_datacamp.isnull().sum()print(missing_values)Bereitgestellt von
survived 0
pclass 0
sex 0
age 177
sibsp 0
parch 0
fare 0
embarked 2
class 0
who 0
adult_male 0
deck 688
embark_town 2
alive 0
alone 0Bereitgestellt von
Umgang mit Spalten und Indizes
Schauen wir uns an, wie die fehlenden Werte in der Spalte age dargestellt werden:
Wenn du weniger Nachkommastellen möchtest, gibst du mit dem Parameter float_formatdie Anzahl der Nachkommastellen an. Hier werden wir nur drei verwenden.
new_df.to_csv('new_titanic.csv', na_rep='Datacamp', float_format='%.3f')
new_df_datacamp = pd.read_csv('new_titanic.csv')
new_df_datacamp = pd.DataFrame(new_df_datacamp)print(new_df_datacamp['age'][:10])Bereitgestellt von
Wenn du nicht willst sehen willst, setze den Parameterindexauf False.
Du kannst auch entscheiden, ob die Spaltennamen beibehalten werden sollen, indem du den Parameterheader verwendest und ihn auf True oder False setzt (oder du kannst die Namen für die Spalten festlegen).
Mit dem Parameter columnskannst du auswählen, welche Spalten beibehalten werden sollen. Mit dem Parameterindex_labelkannst du einen Namen für den Spaltenindex festlegen oder eine Liste von Namen, wenn du mehrere Indizes hast.
Index age alive
0 0.271174 no
1 0.472229 yes
2 0.321438 yes
3 0.434531 yes
4 0.434531 noBereitgestellt von
Öffnen, Kodieren und Komprimieren von Dateien
Mit dem Parameter mode kannst du festlegen, was geschehen soll, wenn du bereits eine CSV-Datei mit demselben Namen wie die von dir erstellte Datei hast. Wenn du den Parameter auf ‘w’ setzt und bereits eine new_titanic.csvDatei hast, wird die von dir erstellte Datei die alte ersetzen. Wenn du ‘x’ einstellst, wird die neue Datei nur erstellt, wenn es keine bestehende Datei mit demselben Namen gibt. Wenn du schließlich den Parameter auf ‘a’ setzt, wird die neue Datei an die ältere Datei mit demselben Namen angehängt (vielleicht willst du nur ein paar Zeilen hinzufügen).
Der Parameter encoding legt die Kodierung der neuen Datei fest. Wenn deine Daten Sonderzeichen enthalten, z. B. Buchstaben eines anderen Alphabets, kannst du sie auf ‘utf-8’ oder eine andere Kodierung einstellen.
Der Parameter compressionlegt fest, wie die neue Datei komprimiert wird. Standardmäßig ist sie auf ‘infer’ eingestellt, was bedeutet, dass die Datei entsprechend der angegebenen Erweiterung komprimiert wird, aber du kannst auch deine bevorzugte Erweiterung angeben.
# Infer the compression
new_df.to_csv('new_titanic.csv.gz')# Specify the compression explicitly
new_df.to_csv('new_data.csv.gz', compression='gzip')# Specify the compression via a dictionary
new_df.to_csv('new_data.zip',
compression={'method':'zip','archive_name':'data.csv'})Bereitgestellt von
Wie man Quotierungen verwendet
Der Parameter quotinglegt die Art der Daten fest, die zwischen Anführungszeichen gesetzt werden sollen. Wie ich bereits sagte, musst du bei einem Komma-Trennzeichen und Zellen, die Kommas enthalten (z. B. Texte), entscheiden, was zwischen Anführungszeichen gesetzt werden soll.
# Default value, quotes only fields with special characters or separators like tabs and commas
new_df.to_csv('new_titanic.csv', quoting=csv.QUOTE_MINIMAL)# Quotes all fields
new_df.to_csv('new_titanic.csv', quoting=csv.QUOTE_ALL)# Quotes only fields with non-numeric values
new_df.to_csv('new_titanic.csv', quoting=csv.QUOTE_NONNUMERIC)# No field is quoted
new_df.to_csv('new_titanic.csv', quoting=csv.QUOTE_NONE)Bereitgestellt von
Chunksize und Datums-Zeit-Daten
Der Parameter chunksize gibt an, wie viel von deiner Datei auf einmal geschrieben werden soll. Wenn du den Standardwert angibst, werden alle Zeilen auf einmal geschrieben, aber du kannst auch eine Anzahl angeben, was nützlich sein kann, wenn die Datei sehr groß ist.
Der Parameter date_format legt die Darstellung von Datetime-Objekten fest. Du kannst sie mit demstrftime-Format angeben.
# Write DataFrame to CSV with dates formatted as 'MM/DD/YYYY'
new_df.to_csv('new_titanic.csv', date_format='%m/%d/%Y')# You can set datetime objects up to seconds
new_df.to_csv('new_titanic.csv', date_format='%Y-%m-%d %H:%M:%S')Bereitgestellt von
Fazit
Jetzt kannst du deinen DataFrame hoffentlich in dem Format exportieren, das deinen Bedürfnissen entspricht!
Ich möchte dich ermutigen, weiter zu lernen - hier sind einige Ressourcen, die du ausprobieren kannst:
Ich schließe meinen Master in Datenwissenschaften an der Universität Bukarest, Rumänien, mit einer Arbeit über die Vorhersage von Verkehrsströmen mit verschiedenen Modellen auf der Grundlage von Graph Neural Networks ab. Die wichtigsten Fähigkeiten, die ich gelernt habe, waren die Datenbereinigung und -visualisierung in Python und Power BI, die Vorverarbeitung für verschiedene Machine-Learning-Aufgaben und die Erstellung von Modellen mit PyTorch (oder TensorFlow). Gleichzeitig unterrichte ich als Doktorand der Philosophie Seminare zur Logik erster Ordnung und arbeite an meiner Doktorarbeit über die Bayes'sche Bestätigungstheorie. Ich bin begierig darauf, mehr über Daten und die Erstellung von Modellen zu lernen und das Gelernte weiterzugeben.
Lerne, wie du Python-Listen mit Techniken wie Slicing, List Comprehensions und itertools aufteilen kannst. Finde heraus, wann du welche Methode für die beste Datenverarbeitung nutzen solltest.
Mach dich mit Python-Datenstrukturen vertraut: Lerne mehr über Datentypen und primitive sowie nicht-primitive Datenstrukturen wie Strings, Listen, Stapel usw.
Du kannst DataFrames von einem breiten in ein langes Format umwandeln, Zeilen und Spalten stapeln und entstapeln sowie Multi-Index-DataFrames bearbeiten.
Wenn du einen DataFrame erstellst oder einen bestehenden modifizierst, möchtest du ihn vielleicht exportieren, damit andere Personen damit arbeiten können, oder du kannst ihn für deine zukünftige Arbeit speichern. Es kann zum Beispiel sein, dass du deinem Prüfer eine Vorhersage aus einem maschinellen Lernprojekt vorlegen oder einen geänderten Datensatz an einen Kollegen schicken musst.
In Python kannst du einen DataFrame mit der Methode
.to_csv()von Pandas als CSV-Datei exportieren .In diesem Artikel führe ich dich durch die wichtigsten Schritte des Prozesses und erkläre die Parameter der Methode.
Wenn du mehr über Pandas erfahren möchtest, schau dir diesen Kurs an Datenbearbeitung mit Pandas.
Ich beginne mit einer kurzen Antwort für diejenigen, die es eilig haben, und gehe dann ins Detail.
Kurze Antwort: Pandas DataFrame im CSV-Format speichern
Um einen Pandas DataFrame als CSV-Datei zu speichern, verwendest du die Methode
DataFrame.to_csv():Ersetze
'your_file_name.csv'durch den gewünschten Namen und Pfad für deine Datei. Das Argumentindex=Falseverhindert, dass Pandas eine Indexspalte zu deiner CSV hinzufügt.Einen Pandas DataFrame erstellen
Schauen wir uns jetzt die längere Antwort an. Anstatt einen DataFrame von Grund auf neu zu erstellen, importiere ich einen Datensatz, ändere ihn und speichere den resultierenden DataFrame im CSV-Format. Der erste Schritt besteht darin, die notwendigen Bibliotheken zu importieren:
Dann können wir einen
seaborn-Datensatz importieren. Der importierte Datensatz ist bereits ein Pandas DataFrame, wir müssen ihn also nicht umwandeln.Ändern eines Pandas DataFrame
Nun wollen wir einen neuen DataFrame erstellen. Da ich dieMethode
.to_csv()von Pandas erkunden möchte, werde ich nur eine Min-Max-Normalisierung für numerische Variablen durchführen.Einen Pandas DataFrame als CSV speichern
Wir verwenden die Methode
DataFrame.to_csv(), um den geänderten DataFrame als CSV-Datei zu speichern.Dadurch wird die CSV-Datei im aktuellen Verzeichnis gespeichert. Wenn du eine Auffrischung brauchst, lies dieses Tutorial darüber wie man das aktuelle Verzeichnis in Python ermittelt.
Die Art und Weise, wie ich diese Methode aufgerufen habe, stellte sicher, dass alle Parameter auf ihre Standardwerte gesetzt wurden. Jetzt stelle ich dir die Parameter vor und zeige dir, wie du ihre Werte nach deinen Bedürfnissen ändern kannst.
Parameter von
DataFrame.to_csv()ErläutertHier ist die gleiche Methode
.to_csv()mit allen Parametern aufgeführt:Einige dieser Parameter sind optional, wie z.B.
columns,encoding,quoting,lineterminatorundstorage_options, also setze ich nur Werte für sie, nicht unbedingt Standardwerte.Der erste Parameter kann entweder ein String sein, der den Namen der Datei angibt, oder ein Dateiobjekt. Schau dir dieses Beispiel an:
Trennzeichen und fehlende Werte
Der nächste Parameter ist das Trennzeichen, das angibt, wie die Daten getrennt werden. Das Standard-Trennzeichen ist das Komma, aber wir können es in einen Tab oder ein Semikolon ändern. Ein Tabulator oder Semikolon als Trennzeichen kann nützlich sein, wenn deine exportierten Daten ein bestimmtes Format haben müssen. Auch bei Daten, die Kommas enthalten, wie z.B. bei Texten, kann die Verwendung des Kommas als Trennzeichen zu unerwünschten Änderungen führen.
Wenn du zum Beispiel "Hallo, Welt "als Datenpunkt hast , brauchst du, wenn du das Komma als Trennzeichen verwenden willst, auch Anführungszeichen, damit es ein einzelner Datenpunkt bleibt. Die Verwendung eines Tabulators oder Semikolons als Trennzeichen kann die bessere Option sein, da es weniger Speicherplatz benötigt als die Verwendung von Kommas und Anführungszeichen.
Der dritte Parameter,
na_rep, bezieht sich auf die Darstellung der fehlenden Werte. Üblicherweise lässt du die Zelle leer und fügst‘NaN’oder‘Na’ein, aber du kannst auch deine eigene Zeichenfolge einfügen. Im folgenden Beispiel werde ich für jeden fehlenden Wert‘Datacamp’einfügen.Umgang mit Spalten und Indizes
Schauen wir uns an, wie die fehlenden Werte in der Spalte
agedargestellt werden:Wenn du weniger Nachkommastellen möchtest, gibst du mit dem Parameter
float_formatdie Anzahl der Nachkommastellen an. Hier werden wir nur drei verwenden.Wenn du nicht willst sehen willst, setze den Parameter
indexaufFalse.Du kannst auch entscheiden, ob die Spaltennamen beibehalten werden sollen, indem du den Parameter
headerverwendest und ihn aufTrueoderFalsesetzt (oder du kannst die Namen für die Spalten festlegen).Mit dem Parameter
columnskannst du auswählen, welche Spalten beibehalten werden sollen. Mit dem Parameterindex_labelkannst du einen Namen für den Spaltenindex festlegen oder eine Liste von Namen, wenn du mehrere Indizes hast.Öffnen, Kodieren und Komprimieren von Dateien
Mit dem Parameter
modekannst du festlegen, was geschehen soll, wenn du bereits eine CSV-Datei mit demselben Namen wie die von dir erstellte Datei hast. Wenn du den Parameter auf‘w’setzt und bereits einenew_titanic.csvDatei hast, wird die von dir erstellte Datei die alte ersetzen. Wenn du‘x’einstellst, wird die neue Datei nur erstellt, wenn es keine bestehende Datei mit demselben Namen gibt. Wenn du schließlich den Parameter auf‘a’setzt, wird die neue Datei an die ältere Datei mit demselben Namen angehängt (vielleicht willst du nur ein paar Zeilen hinzufügen).Der Parameter encoding legt die Kodierung der neuen Datei fest. Wenn deine Daten Sonderzeichen enthalten, z. B. Buchstaben eines anderen Alphabets, kannst du sie auf
‘utf-8’oder eine andere Kodierung einstellen.Der Parameter
compressionlegt fest, wie die neue Datei komprimiert wird. Standardmäßig ist sie auf‘infer’eingestellt, was bedeutet, dass die Datei entsprechend der angegebenen Erweiterung komprimiert wird, aber du kannst auch deine bevorzugte Erweiterung angeben.Wie man Quotierungen verwendet
Der Parameter
quotinglegt die Art der Daten fest, die zwischen Anführungszeichen gesetzt werden sollen. Wie ich bereits sagte, musst du bei einem Komma-Trennzeichen und Zellen, die Kommas enthalten (z. B. Texte), entscheiden, was zwischen Anführungszeichen gesetzt werden soll.Chunksize und Datums-Zeit-Daten
Der Parameter
chunksizegibt an, wie viel von deiner Datei auf einmal geschrieben werden soll. Wenn du den Standardwert angibst, werden alle Zeilen auf einmal geschrieben, aber du kannst auch eine Anzahl angeben, was nützlich sein kann, wenn die Datei sehr groß ist.Der Parameter
date_formatlegt die Darstellung von Datetime-Objekten fest. Du kannst sie mit demstrftime-Format angeben.Fazit
Jetzt kannst du deinen DataFrame hoffentlich in dem Format exportieren, das deinen Bedürfnissen entspricht!
Ich möchte dich ermutigen, weiter zu lernen - hier sind einige Ressourcen, die du ausprobieren kannst: