Lesen und formatieren Sie CSV-Dateien gemischt mit Komma-Registerkarten mit Python-Pandas

Es fiel mir schwer, die CSV-Datei mit Tabulatoren und Kommas zu bearbeiten. Notieren Sie sich daher die Korrespondenz zu diesem Zeitpunkt. Als ich die CSV-Datei mit einem Texteditor öffnete, sah es so aus:

txt


0.2,	1.01,	0.60,	-0.68
0.4,	1.00,	0.67,	-0.69
0.6,	1.01,	0.61,	-0.72

Lesen Sie zuerst die Datei mit read_csv von Pandas. Der Dateiname lautet sample.csv und es befinden sich Dateien im selben Verzeichnis.

In


import pandas as pd

df = pd.read_csv_("sample.csv",header = None)

#Überprüfen Sie den Inhalt von DataFrame
print(df)
print(df.dtypes)

Hier

df = pd.read_csv_("sample.csv",sep="\t", header = None)


 Ich hätte es tun sollen, aber weil ich das nicht getan habe, wurden die Daten mit gemischten Registerkarten so gelesen, dass sie in der ersten Spalte stehen würden.


#### **`Out`**
```ruby

	0
0	0.2\t1.01\t0.60\t-0.68
1	0.4\t1.00\t0.67\t-0.69
2	0.6\t1.01\t0.61\t-0.72


0    object
dtype: object

Gehen Sie wie folgt vor, um die Spalten durch Tabulatortrennzeichen zu trennen.

In


df = df[0].apply(lambda x: pd.Series(x.split('\t')))

#Überprüfen Sie den Inhalt von DataFrame
print(df)
print(df.dtypes)

Out


	0		1		2		3
0	0.2		1.01	0.60	-0.68
1	0.4		1.00	0.67	-0.69
2	0.6		1.01	0.61	-0.72


0    object
1    object
2    object
3    object
dtype: object

Da ich danach eine Berechnung durchführen möchte, werden alle in den Float-Typ konvertiert.

Ermitteln Sie die Anzahl der Spalten im DataFrame mit df.shape [1], erstellen Sie eine Liste der Anzahl der Spalten mit der Bereichsfunktion und drehen Sie die for-Anweisung um.

In


for i in range(df.shape[1]):
    df[i] = df[i].astype(float)

#Überprüfen Sie den Inhalt von DataFrame
print(df.dtypes)

Out


0    float64
1    float64
2    float64
3    float64
dtype: object

Das ist es.


** Ergänzung 1 Wenn Sie die unter dem Ordner abgelegten Dateien lesen möchten, können Sie wie folgt vorgehen.

In


import pandas as pd
import os

#Sie müssen das Verzeichnis in den Ordner ändern, der die Dateien enthält.
os.chdir("./Ordnernamen")

#Holen Sie sich eine Liste der Dateien.
file = os.listdir("./")

# file[0]Holen Sie sich den Dateinamen mit (vorausgesetzt, es existiert nur eine Datei)
df = pd.read_csv(file[0],header=None)

** Ergänzung 2 Es scheint, dass das Astype-Argument auch ein Wörterbuchtyp sein kann. Es scheint praktisch zu sein, wenn Sie zu einem anderen Typ konvertieren.

In


df.astype({'a': int, 'c': str}).dtypes

** Ergänzung 3 Führen Sie die folgenden Schritte aus, um den Spaltennamen einzugeben und die Spalte hinzuzufügen.

In


from pandas import DataFrame

#Spaltennamen einfügen
df.columns=['a','b','c','d']

#Fügen Sie eine Spalte hinzu, indem Sie den Spaltennamen angeben
df = DataFrame(df, columns=['a','b','c','d','e'])

** 20170410 Nachtrag

Wie Sie im Kommentar betont haben, habe ich versucht, "sep =" \ t "" als Argument von read_csv zu verwenden, aber es wurde mit Kommas gelesen.

Out


     0       1       2        3
0    0.2,    1.01,   0.60,   -0.68
1    0.4,    1.00,   0.67,   -0.69
2    0.6,    1.01,   0.61,   -0.72

Wenn ich jedoch die Beschreibung von "sep =" \ t "" löschte und read_csv ausführte, wurde sie normalerweise als Float-Typ ohne Split- oder Astype-Verarbeitung gelesen.

Ich laufe mit pycharm, aber wenn ich das sep-Argument zurücksetze und von vorne beginne, wird das Tool es automatisch ermitteln? Ich verstehe nicht.

In


import pandas as pd
import os ##Zum Lesen von Dateien

#Lesen Sie die CSV-Datei unter dem Beispielordner
os.chdir("./sample")
file = os.listdir("./")

df = pd.read_csv(file[0],header=None)

os.chdir("../")

#Überprüfen Sie den Inhalt von DataFrame
print(df)
print(df.dtypes)

Out


     0      1      2      3
0    0.2    1.01   0.60   -0.68
1    0.4    1.00   0.67   -0.69
2    0.6    1.01   0.61   -0.72

0    float64
1    float64
2    float64
3    float64
dtype: object

Bisher wurden vier Arten von Ereignissen bestätigt, und die Ursache ist unbekannt.

Lesen Sie gemischte Komma-Tab-Daten mit Pycharm_Beim Lesen mit csv
① Wenn es mit float richtig gelesen wird, ohne etwas zu tun
(2) Wenn es mit gemischten Registerkarten gelesen wird, wenn nichts getan wird
    ③sep="\t"Wann wird von float korrekt gelesen, wenn angegeben
    ④sep="\t"Wenn Sie angeben, wird es mit Kommas gelesen

Recommended Posts

Lesen und formatieren Sie CSV-Dateien gemischt mit Komma-Registerkarten mit Python-Pandas
Lesen einer CSV-Datei mit Python 2/3
Lesen Sie CSV mit Python-Pandas
Lesen Sie die json-Datei mit Python, formatieren Sie sie und geben Sie json aus
[Python] Lesen Sie die CSV-Datei und zeigen Sie die Abbildung mit matplotlib an
CSV-Datei mit Python lesen (CSV-Datei herunterladen und analysieren)
Lesen Sie CSV und analysieren Sie mit Pandas und Seaborn
[Python] Lesen Sie eine CSV-Datei mit großen Datenmengen mithilfe eines Generators
Lesen Sie Python-CSV-Daten mit Pandas ⇒ Graph mit Matplotlib
Lesen Sie JSON mit Python und geben Sie CSV aus
[Python] Wie man Excel-Dateien mit Pandas liest
Lesen Sie die CSV-Datei: pandas
[Python] Lesen der CSV-Datei (Methode read_csv des Pandas-Moduls)
Erstellen Sie mit Python eine Datei im Photoshop-Format (.psd)
Lesen Sie die CSV-Datei mit Python und konvertieren Sie sie unverändert in DataFrame
Lesen Sie mit Python Zeile für Zeile aus der Datei
Lesen Sie die Python-CSV-Datei
[Einführung in Pandas] Lesen Sie eine CSV-Datei ohne Spaltennamen und geben Sie ihr einen Spaltennamen
Lesen und analysieren Sie den Datensatz im Arff-Format mit python scipy.io
So konvertieren Sie eine JSON-Datei mit Python Pandas in eine CSV-Datei
Erstellen Sie mit Python Pandas Py Installer ein CSV-Formatierungswerkzeug
[Python] Ein Memo zum vertikalen Schreiben von CSV mit Pandas
CSV-Datei lesen und schreiben
Dateien lesen und schreiben
Dateien schreiben und lesen
Laden Sie die CSV-Datei mit Python herunter
[Python] Japanische CSV mit Pandas ohne verstümmelte Zeichen lesen (weitere auf Japanisch geschriebene Spalten extrahieren)
Lesen einer Excel-Datei (.xlsx) mit Pandas [Python]
[Python] Mit Python in eine CSV-Datei schreiben
Ausgabe in eine CSV-Datei mit Python
Lesen und Schreiben von Python CSV-Dateien
Lesen und Schreiben von CSV mit Python
[Python] Format, wenn to_csv mit Pandas
Formatieren Sie die CSV-Datei "Nationalfeiertag" des Kabinetts mit Pandas
Lesen Sie die Datei in Python mit einem relativen Pfad aus dem Programm
[ROS2] So spielen Sie eine Bag-Datei mit Start im Python-Format ab
Holen Sie sich OCTA-Simulationsbedingungen aus einer Datei und speichern Sie sie mit Pandas
Erstellen Sie eine CP932-CSV-Datei für Excel mit Chalice und geben Sie sie zurück
Erstellen einer einfachen Power-Datei mit Python
Ein Memo mit Python2.7 und Python3 in CentOS
Lesen wir die RINEX-Datei mit Python ①
Lesen und Schreiben von CSV-Dateien mit Numpy
Lesen Sie Python csv und exportieren Sie es nach txt
[Automatisierung] Lesen Sie Word-Dokumente mit Python
Zeichendatendatei mit numpy lesen
[pandas] CSV-Datei Lese- und Anzeigemethode
Laden Sie csv mit Pandas und spielen Sie mit Index
[Python] Lesen Sie die HTML-Datei und üben Sie das Scraping
Laden Sie Pandas DataFrame als CSV-Datei herunter
Ich habe mit Python eine Einstellungsdatei erstellt
[Automatisierung] Lesen Sie E-Mails (Nachrichtendatei) mit Python
Lesen Sie die Python # .txt-Datei für Super-Anfänger in Python mit .py
Lesen Sie die Datei mit Python und löschen Sie die Zeilenumbrüche [Hinweise zum Lesen der Datei]
Lesen Sie eine Datei mit verstümmelten Linien in Python
Erstellen einer Python-Umgebung mit virtualenv und direnv
Teilen Sie jede PowerPoint-Folie in eine JPG-Datei und geben Sie sie mit Python aus
Python - Lesen Sie Daten aus einer numerischen Datendatei und suchen Sie die multiple Regressionslinie.
Python-Skript, das SQL-Dateien liest, BigQuery ausführt und CSV speichert
Lesen Sie Tabellendaten in einer PDF-Datei mit Python
Ich habe versucht, eine CSV-Datei mit Python zu lesen
Starten Sie einen Webserver mit Python und Flask