Während meiner Abschlussforschung musste ich eine relativ große CSV-Datei verarbeiten. Insbesondere die Arbeit des Gruppierens von Zeilen nach dem Wert der ID-Spalte und des Erfassens der Zeile mit der Spalte mit dem kleinsten Abstand in jeder Gruppe. Das zu diesem Zeitpunkt verwendete Verfahren wird nachstehend beschrieben.
Der Code lautet wie folgt.
import pandas as pd
data = pd.read_csv("Pfad zur ursprünglichen Datendatei")
df = pd.DataFrame(columns=data.columns)
###Dies ist die endgültige Ausgabedatei. Der Spaltenname entspricht den Daten und ist zu diesem Zeitpunkt leer.
dic = {}
for name,group in data.groupby('id'):
dic[name] = group
list = dic['id'].unique()
for i in list:
k = dic[i]
l = k['distance'].idxmin()
m = data.iloc[l:l+1,:]
df = df.append(m)
df.to_csv("Der Pfad des Verzeichnisses, das Sie speichern möchten")
Ich denke, es gibt mehr prägnanten Code ... Dies ist in einer Vielzahl von Situationen hilfreich, z. B. beim Erstellen eines DataFrame, der die Spaltennamen der Originaldaten erbt, und beim Abrufen der Zeilennummer, die den Wert einer bestimmten Spalte minimiert.
Recommended Posts