Ich möchte Daten in einem Datenrahmen identifizieren, die fortlaufend sind, dh es gibt entweder einen unmittelbaren Vorgänger oder Nachfolger. Ich möchte dann markieren, welche Daten in einer neuen Spalte stehen und nicht fortlaufend sind. Zusätzlich möchte ich diese Operation innerhalb bestimmter Teilmengen meiner Daten durchführen.So identifizieren Sie aufeinanderfolgende Daten
Zuerst erstelle ich eine neue Variable, in der ich Wahr für False für aufeinanderfolgende Tage identifizieren würde.
weatherFile['CONSECUTIVE_DAY'] = 'NA'
Ich habe konvertierten Daten in Datetime-Objekte dann auf Ordnungs diejenigen:
weatherFile['DATE_OBJ'] = [datetime.strptime(d, '%Y%m%d') for d in weatherFile['DATE']]
weatherFile['DATE_INT'] = list([d.toordinal() for d in weatherFile['DATE_OBJ']])
Jetzt würde ich aufeinanderfolgende Tage, in den folgenden Gruppen identifizieren mag:
weatherFile.groupby(['COUNTY_GEOID_YEAR', 'TEMPBIN'])
Ich denke Durchlaufen der Gruppen und Anwenden einer Operation, die angibt, welche Tage aufeinanderfolgend sind und welche nicht, innerhalb eines eindeutigen Bezirks, tempbin-Untergruppen.
Ich bin ziemlich neu in der Programmierung und Python, ist dies ein guter Ansatz bisher, wenn ja, wie kann ich Fortschritte machen?
Danke - lassen Sie mich wissen, wenn ich zusätzliche Informationen bereitstellen sollte.
Update:
@karakfa Beratung Verwendung habe ich versucht, die folgenden: unhashable Typ:
weatherFile.groupby(['COUNTY_GEOID_YEAR', 'TEMPBIN'])
weatherFile['DISTANCE'] = weatherFile[1:, 'DATE_INT'] - weatherFile[:-1,'DATE_INT']
weatherFile['CONSECUTIVE?'] = np.logical_or(np.insert((weatherFile['DISTANCE']),0,0) == 1, np.append((weatherFile['DISTANCE']),0) == 1)
in einem Typeerror Dies führt. Traceback passiert in der zweiten Zeile. weatherFile ['DATE_INT'] ist dtype: int64.
wow - vielen Dank. Ich habe den ganzen Tag gearbeitet, um das herauszufinden und das hat super funktioniert! Schätze es sehr. – Justin