2016-04-17 3 views
0

Ich versuche, große Textdateien mit Hunderttausenden von Zeilen in ihnen zu lesen, damit es schneller gehen Im versuchen, Panda zu verwenden, das ist das Konzept, ich möchte meinen Code Ich bin nicht wirklich sicher, wie man for-Schleifen mit Panda-Dateien benutzt. Lmk, wenn es logisch ist, ein Programm zu haben, um die Laufzeit zu verkürzen. Dank ..Lesen von Datei mit Panda, dann mit for-Schleife

df1 = pd.read_csv('FILENAME1',sep=',',error_bad_lines=False) 
df2 = pd.read_csv('FILENAME2',sep=',',error_bad_lines=False) 
for index, row in df1.iterrows(): 
    for index2, row2 in df2.iterrows(): 
     if index[1]==row2[2] and index[0]==row2[1]: 
      print "this info matches" 
+0

was möchten Sie erreichen? Könnten Sie bitte auch Beispieldatensätze (5-7 Zeilen) für jeden Datensatz in der Textform und die gewünschte Ausgabe/Ergebnismenge? – MaxU

+1

Der Punkt der Verwendung eines Datenrahmens ist so, dass Sie keine Schleife benötigen. Überprüfen Sie diesen Link. um ähnliche Daten zu vergleichen. http://stackoverflow.com/questions/20225110/comparing-two-dataframes-and-getting-the-differences – Michael

Antwort

0

Meiner Meinung nach, wenn Laufzeit wichtig ist, und Sie müssen nur die Berechnung tun, die Sie im Code gezeigt haben, bitte Pandas nicht verwenden. Pandas verbringen zusätzliche Zyklen, um sich selbst einzurichten, Daten zu säubern usw.

+0

Ich kann nicht damit einverstanden sein, dass OP mit "Hunderttausenden von Linien" arbeiten wird " . Loops von Loops sind wahrscheinlich langsamer im Vergleich zu Pandas ... – MaxU

+0

Ich glaube, mit OP meinst du open(). Wenn das der Fall ist, müssen sogar Pandas die Datei öffnen, jede Zeile lesen und zusätzlich ihre eigenen Operationen ausführen, um im richtigen Format zu speichern. Es kann unnötigerweise die Gültigkeit jeder Daten prüfen und sie bei Bedarf transformieren. Am Ende, wenn der Programmierer nur 1 oder 2 Elemente aus einer Reihe verwenden soll, warum sollten wir Zyklen verschwenden, um andere Dinge zu reinigen – Sharad

+0

OP bedeutet [Original Poster] (http://www.acronymfinder.com/Original-Poster - (OP) .html) – MaxU