Laden Sie Daten von txt mit Pandas


159

Ich lade eine txt-Datei, die eine Mischung aus Float- und String-Daten enthält. Ich möchte sie in einem Array speichern, in dem ich auf jedes Element zugreifen kann. Jetzt mache ich es einfach

import pandas as pd

data = pd.read_csv('output_list.txt', header = None)
print data

Dies ist die Struktur der Eingabedatei : 1 0 2000.0 70.2836942112 1347.28369421 /file_address.txt.

Jetzt werden die Daten als eindeutige Spalte importiert. Wie kann ich es teilen, um verschiedene Elemente separat zu speichern (damit ich aufrufen kann data[i,j])? Und wie kann ich einen Header definieren?

Antworten:


217

Sie können verwenden:

data = pd.read_csv('output_list.txt', sep=" ", header=None)
data.columns = ["a", "b", "c", "etc."]

Fügen Sie sep=" "Ihren Code hinzu und lassen Sie ein Leerzeichen zwischen den Anführungszeichen. So können Pandas Leerzeichen zwischen Werten erkennen und in Spalten sortieren. Datenspalten dienen zur Benennung Ihrer Spalten.


Vielen Dank! Wie kann ich auf ein Element der Tabelle zugreifen?
albus_c

Wenn Sie eine Spalte aufrufen möchten, verwenden Sie data.a, wenn Sie die Spalte "a" genannt haben.
Pietrovismara

1
Oder wenn Sie eine einzelne Zeile aufrufen möchten, können Sie data.a [1] verwenden (in diesem Beispiel wird die erste Zeile der Spalte
aufgerufen

Toll! Das hat alles behoben
albus_c

87

Ich möchte zu den obigen Antworten hinzufügen, die Sie direkt verwenden können

df = pd.read_fwf('output_list.txt')

fwf steht für formatierte Linien mit fester Breite.


38

Die Lösung von @ Pietrovismara ist korrekt, aber ich möchte nur hinzufügen: Anstatt eine separate Zeile zum Hinzufügen von Spaltennamen zu haben, ist dies über pd.read_csv möglich.

df = pd.read_csv('output_list.txt', sep=" ", header=None, names=["a", "b", "c"])


13

Wenn Sie den Daten keinen Index zugewiesen haben und sich nicht sicher sind, wie groß der Abstand ist, können Sie Pandas einen Index zuweisen lassen und nach mehreren Leerzeichen suchen.

df = pd.read_csv('filename.txt', delimiter= '\s+', index_col=False)

3
Entsprechend können Sie das ausführlichere Argument delim_whitespace=Trueanstelle des '\s+'Trennzeichens
angeben

8

Sie können Folgendes tun:

import pandas as pd
df = pd.read_csv('file_location\filename.txt', delimiter = "\t")

(wie df = pd.read_csv ('F: \ Desktop \ ds \ text.txt', Trennzeichen = "\ t")


6

Basierend auf den neuesten Änderungen in Pandas können Sie verwenden, read_csv, read_table ist veraltet:

import pandas as pd
pd.read_csv("file.txt", sep = "\t")

4

Sie können die Textdatei mit dem Befehl read_table wie folgt importieren:

import pandas as pd
df=pd.read_table('output_list.txt',header=None)

Die Vorverarbeitung muss nach dem Laden erfolgen


1

Normalerweise schaue ich mir zuerst die Daten an oder versuche sie einfach zu importieren und data.head () auszuführen. Wenn Sie sehen, dass die Spalten durch \ t getrennt sind, sollten Sie etwas sep="\t"anderes angeben sep = " ".

import pandas as pd     
data = pd.read_csv('data.txt', sep=" ", header=None)
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.