Wie lade ich eine tsv-Datei in einen Pandas DataFrame?


135

Ich bin neu in Python und Pandas. Ich versuche, eine tsvDatei in einen Pandas zu laden DataFrame.

Dies ist, was ich versuche und der Fehler, den ich bekomme:

>>> df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t'))

Traceback (most recent call last):
  File "<pyshell#28>", line 1, in <module>
    df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t'))
  File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 318, in __init__
    raise PandasError('DataFrame constructor not properly called!')
PandasError: DataFrame constructor not properly called!

11
Für diejenigen, die 2017+ zu dieser Antwort kommen, verwenden Sie read_csv('path_to_file', sep='\t'). Siehe diese Antwort unten
Ted Petrou

Vielen Dank @ TedPetrou
Salomon Kabongo

Antworten:


153

Hinweis : Ab 17.0 from_csvwird davon abgeraten: Verwenden Sie pd.read_csvstattdessen

In der Dokumentation ist eine .from_csv- Funktion aufgeführt, die anscheinend das tut, was Sie wollen:

DataFrame.from_csv('c:/~/trainSetRel3.txt', sep='\t')

Wenn Sie einen Header haben, können Sie übergeben header=0.

DataFrame.from_csv('c:/~/trainSetRel3.txt', sep='\t', header=0)

4
Ich hatte einige Probleme mit dieser Methode - sie war sehr langsam und schlug am Ende fehl. Stattdessen habe ich read_table () verwendet, was viel schneller und ohne den zusätzlichen Parameter funktioniert hat.
Yurik

21
Beachten Sie, dass ab 17.0 from_csvdavon abgeraten wird: Verwenden Sie pd.read_csvstattdessen!
Rafaelvalle

2
Ich musste Folgendes verwenden: DataFrame.read_csv ('filepath.tsv', sep = '', header = 0)
Archie

3
Das ist eine schlechte Antwort; Sie können TSV nativ mit lesen pd.read_csv/read_table, Sie müssen nur delim_whitespace=Trueodersep
smci

3
@rafaelvalle hinzugefügt veraltete Mitteilung
Arayan Singh

83

Ab 17.0 from_csvwird davon abgeraten.

Verwenden Sie pd.read_csv(fpath, sep='\t')oder pd.read_table(fpath).


4
Hinweis: read_table ist seit Version 0.24.0 veraltet. Verwenden Sie stattdessen pandas.read_csv ().
ManuelSchneid3r

57

Verwenden Sie read_table(filepath). Das Standardtrennzeichen ist tab


1
read_table benötigt keine Parameter. Perfekt funktioniert.
Jay

19

Versuche dies

df = pd.read_csv("rating-data.tsv",sep='\t')
df.head()

Geben Sie hier die Bildbeschreibung ein

Sie müssen tatsächlich den sep- Parameter korrigieren .


7

Datei öffnen, als CSV speichern und dann anwenden

df = pd.read_csv('apps.csv', sep='\t')

Ändern Sie für jedes andere Format einfach das sep-Tag


0
df = pd.read_csv('filename.csv', sep='\t', header=0)

Sie können die tsv-Datei direkt in den Pandas-Datenrahmen laden, indem Sie Trennzeichen und Header angeben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.