Hey Leute, ich bin neu und lerne Python und ich fühle mich wie ich bin ein wenig außerhalb meiner Liga mit dieser Frage. Ich suche Ratschläge, wie ich damit umgehen soll.Python CSV-Datei Für Loops und Datumsvergleich
Ich habe eine Haupt-csv-Datei main.csv mit vielen Feldern, aber die vier wichtigsten sind ID, Name, Datum und Status. Nur um zu verdeutlichen, sind die Felder Name und ID NICHT EINZIGARTIG. Die gleichen werden in mehreren Zeilen angezeigt.
Ich versuche, eine for-Schleife zu verwenden, um durch die Hauptdatei zu gehen und die Ergebnisse nach Name und ID auszubrechen und in jedem einzelnen Fall möchte ich die Daten vergleichen und die am weitesten in der Zukunft auswählen.
Ich bin so weit gekommen und jetzt kämpfe ich. Unten ist mein Skript und Ausgang so weit
Script
import csv
s=open('combined.csv')
mainfile = csv.reader(s)
id = ['1','4']
Name = ['Anthony', 'Bob']
Status = ['New', 'Old']
for r in mainfile:
for m in Name:
for t in id:
if r[10] in (None, ""):
pass
elif r[3] == m:
if r[5] == t:
print (r[3], r[5], r[6], r[11])
Ausgabebeispiel:
('Anthony', '1', '10', '4/3/2017')
('Anthony', '1', '11', '5/2/2017')
('Anthony', '1', '13', '12/30/2017'
('Anthony', '1', '15', '8/20/2017')
('Anthony', '4', '17', '2/3/2018')
('Anthony', '4', '18', '3/28/2017')
('Bob', '1', '111', '4/3/2017')
('Bob', '1', '200', '5/2/2017')
('Bob', '1', '113', '12/30/2017')
('Bob', '1', '115', '8/20/2017')
('Bob', '4', '117', '2/3/2018')
('Bob', '4', '118', '3/28/2017')
Ich bin immer aufgehängt, weil ich nicht sehen will, wo die Name und ID-Felder sind eindeutig und vergleichen alle diese Daten und geben das Datum zurück, das in der Zukunft am weitesten zurückliegt, und drucken das dann in eine Datei aus.
Kann jemand helfen?
Was ist, wenn ein Charles in der Datei ist? – Goyo
Die Namensliste wird vorher ausgefüllt, so dass nur die Namen in der Ausgabe definiert werden, die ich bereits in dieser Liste definiert habe. Ich teste gerade jetzt, aber am Ende wird es 26ish eindeutige Namen – Anthony