Als ich versuchte, die im CSV-Format erhaltene Datei mit Pandas zu importieren und zu verarbeiten, waren der Header und die Daten falsch ausgerichtet, aber unerwartet konnte ich die Antwort nicht sofort erreichen, also schrieb ich sie als Artikel. [Zur Lösung springen](# Lösung)
Ich habe es in der folgenden Umgebung ausgeführt.
Modul | version |
---|---|
python | 3.8.3 |
pandas | 1.0.5 |
Importieren Sie die folgende Datei im CSV-Format als DatFrame.
example.csv
Time x y z
0 1 2 10
1 2 2 10
2 3 2 10
..
Importieren Sie mit "read_csv ()".
read_csv.py
import pandas as pd
path = 'CSV-Dateipfad'
df = pd.read_csv(path)
print(df)
Das Ausgabeergebnis im Terminal ist wie folgt.
# Time\tx\ty\tz
# 0 1\t1\t2\t10
# 1 2\t2\t2\t10
# 2 3\t3\t2\t10
..
Es gibt ein zusätzliches \ t
darin. Es scheint, dass es durch Tabulatoren (tsv-Format) anstatt durch Kommas getrennt war.
Versuchen Sie es mit read_tabel ().
read_tsv.py
import pandas as pd
path = 'CSV-Dateipfad'
df = pd.read_table(path)
print(df)
Das Ausgabeergebnis ist wie folgt.
Das \ t
ist weg, aber stattdessen sind der Header und die Daten falsch ausgerichtet und alle z-Daten sind jetzt NaN.
# Time x y z
# 0 1 2 10 NaN
# 1 2 2 10 NaN
# 2 3 2 10 NaN
Geben Sie read_csv ()
ein Argument wie folgt:
read_csv_2.py
import pandas as pd
path = 'CSV-Dateipfad'
df = pd.read_csv(path, sep='\s+')
print(df)
Gemäß der Padas-Dokumentation (https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html) sind die Argumente für eine Datei durch ein oder mehrere Zeichen getrennt. Wie es scheint. Es scheint, dass die Ursache darin bestand, dass die ursprünglichen Daten durch Tabulatoren und Leerzeichen getrennt wurden ... Bitte vergib mir ... lol.
Ich konnte den Header und die Daten korrekt in einen DataFrame konvertieren, indem ich das Argument "sep =" \ s + "" an "csv_read ()" für die Daten gab, die durch Tabulatoren und Leerzeichen getrennt waren.
Recommended Posts