Heim >Backend-Entwicklung >Python-Tutorial >Python liest die CSV-Datei, entfernt eine Spalte und schreibt dann eine neue Datei. Technisches Tutorial
Dieser Artikel enthält hauptsächlich ein Beispiel für das Lesen einer CSV-Datei mit Python, das Entfernen einer Spalte und das anschließende Schreiben einer neuen Datei. Er hat einen großen Referenzwert und ich hoffe, dass er für alle hilfreich sein wird. Folgen wir dem Editor, um einen Blick darauf zu werfen. Ich hoffe, er kann jedem helfen, Python besser zu beherrschen.
Verwendet zwei Methoden, um dieses Problem zu lösen. Beides sind im Internet verfügbare Lösungen.
Szenariobeschreibung:
Es gibt eine Datendatei, die im Textmodus gespeichert ist, und jetzt gibt es drei Spalten: user_id, plan_id, mobile_id. Das Ziel besteht darin, neue Dateien nur mit mobile_id und plan_id zu erhalten.
Lösung
Option 1: Verwenden Sie Python, um Dateien zu öffnen und Dateien zu schreiben. Einfach abspielen Durchsuchen Sie die Daten, verarbeiten Sie die Daten in der for-Schleife und schreiben Sie sie in eine neue Datei.
Der Code lautet wie folgt:
def readwrite1( input_file,output_file): f = open(input_file, 'r') out = open(output_file,'w') print (f) for line in f.readlines(): a = line.split(",") x=a[0] + "," + a[1]+"\n" out.writelines(x) f.close() out.close()
Option 2: Verwenden Sie Pandas. Lesen Sie die Daten in den DataFrame und teilen Sie die Daten dann direkt auf, um in die neue Datei zu schreiben.
Der Code lautet wie folgt:
def readwrite2(input_file,output_file): date_1=pd.read_csv(input_file,header=0,sep=',') date_1[['mobile', 'plan_id']].to_csv(output_file, sep=',', header=True,index=False)
Aus Code-Sicht ist die Pandas-Logik klarer.
Werfen wir einen Blick auf die Ausführungseffizienz!
def getRunTimes( fun ,input_file,output_file): begin_time=int(round(time.time() * 1000)) fun(input_file,output_file) end_time=int(round(time.time() * 1000)) print("读写运行时间:",(end_time-begin_time),"ms") getRunTimes(readwrite1,input_file,output_file) #直接撸数据 getRunTimes(readwrite2,input_file,output_file1) #使用dataframe读写数据
Lese- und Schreiblaufzeit: 976 ms
Lese- und Schreiblaufzeit: 777 ms
input_file Bei etwa 270.000 Daten ist die Effizienz des Datenrahmens immer noch schneller als die der for-Schleife. Wenn die Datenmenge größer ist, wird der Effekt offensichtlicher?
Versuchen Sie als Nächstes, die Anzahl der Eingabedateidatensätze zu erhöhen. Die Ergebnisse sind wie folgt:
input_file | readwrite1 | readwrite2 |
27W | 976 | 777 |
55W | 1989 | 1509 |
110W | 4312 | 3158 |
Aus den obigen Testergebnissen wird die Effizienz des Datenrahmens um etwa 100% erhöht 30 %.
Verwandte Empfehlungen:
Eine kurze Einführung in Python NLP
Erklärung des Python-Benutzerverwaltungssystems mit Beispielen
Das obige ist der detaillierte Inhalt vonPython liest die CSV-Datei, entfernt eine Spalte und schreibt dann eine neue Datei. Technisches Tutorial. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!