2016-07-24 4 views
0

Ich benutzte Pandas Daten aus einer dataSource.cvs-Datei zu laden:Gibt es eine Möglichkeit, Pandas Dataframe direkt als Dateihandler zu lesen?

DF = pd.read_csv('dataSoruce.csv')

In Pandas ich die Daten bereinigen kann, wie bei 0.

Weiter fehlende Werte Füllung I DF.to_csv('temp.csv', sep=',') verwenden, um die DF zu schreiben eine temporäre cvs-Datei, und dann Handler verwenden, um die python-Datei, die Datei erneut

 hd = open('temp.csv') 
    for line in hd: 
     line = line.split(',')..... 

zu Pars öffnen e die Daten und assoziieren mehr Informationen aus anderen Datentabellen. Das funktioniert. Allerdings, wenn ich tun

direkt
 hd = DF 

Dann zeigt es die Fehlermeldung als

 IndexError: list index out of range 

Gibt es Möglichkeiten sparend zu cvs und Lesen csv überspringen? , d. H. Direkt öffnen Sie die pandas dataFrame als Dateihandler?

Eine Tonne danke!

+1

Warum möchten Sie das tun? Warum können Sie nicht einfach durch Verwendung des DataFrame-Objekts selbst mehr Informationen aus anderen Tabellen zuordnen? Was genau machst du mit der temporären CSV-Datei? – BrenBarn

+0

Eine Sache: Wenn Sie über ein Dataframe-Objekt iterieren, iterieren Sie einfach über die Spaltennamen. Sie sind Strings. Wenn Sie also die '' '.split (',')' '' Methode haben, teilen Sie Ihre Spaltennamen auf .. Wenn du einen Spaltennamen hast '' 'col = 'etwas''', dann bekommst du' '' 'somthing'.split ('. ')' '' Das ist einfach [' etwas ' ]. Sie versuchen wahrscheinlich, dieses Array zu indizieren, und es wird ein Fehler ausgegeben. Wie auch immer, mit ein wenig Recherche kannst du herausfinden, was du mit Pandas machen willst, und wenn du nicht genau herausfinden kannst, was du willst, dann ist S.O. Am wenigsten hat sicher eine Antwort! – dermen

+0

@dermen: Er iteriert über ein Dateiobjekt, nicht über einen DataFrame. – BrenBarn

Antwort

0

suppose DF ist ein Datenrahmen in Pandas, Sie folgendermaßen vorgehen:

for x in DF.values: 
    x = tuple(x) 

dann x(x1, x2, x3...) Format sein wird.