Heim  >  Artikel  >  Backend-Entwicklung  >  Python liest die CSV-Datei, entfernt eine Spalte und schreibt dann eine neue Datei. Technisches Tutorial

Python liest die CSV-Datei, entfernt eine Spalte und schreibt dann eine neue Datei. Technisches Tutorial

小云云
小云云Original
2017-12-30 13:23:552330Durchsuche

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:

Detailliertes Beispiel für die Verwendung von Python zum Filtern und Löschen von Dateien in einem Verzeichnis

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn