Ich bin neu in der Programmierung und Python schreiben, und möchte das folgende Stück Code als Funktion der ‚def‘ ‚Return‘ Konstruktion mit schreiben:Wie eine Konstruktion Code als Funktion
df.loc[df['DATE_INT'].shift(-1) - df['DATE_INT'] == 1, 'CONSECUTIVE_DAY'] = True
df.loc[(df['DATE_INT'].shift(-1) - df['DATE_INT'] == 1) | (df['DATE_INT'].shift(1) - df['DATE_INT'] == -1), 'CONSECUTIVE_DAY'] = True
Mein Versuch liefert ungültige Syntax:
def ConsecutiveID(df, column ='DATE_INT'):
return df.loc[df['DATE_INT'].shift(-1) - df['DATE_INT'] == 1, 'CONSECUTIVE_DAY'] = True
df.loc[(df['DATE_INT'].shift(-1) - df['DATE_INT'] == 1) | (df['DATE_INT'].shift(1) - df['DATE_INT'] == -1), 'CONSECUTIVE_DAY'] = True
Mein Ziel ist es letztlich meine ConsecutiveID Funktion wie folgt zu verwenden:
df.groupby(['COUNTY_GEOID_YEAR','TEMPBIN']).apply(ConsecutiveID)
Ich verwende die Split-Apply-Mähdrescher-Konstruktion. Wo growby meine Daten aufteilt, verwende ich die Funktion, die ich in apply konstruieren möchte.
Meine Hauptfrage ist, wie man schreibt, was ich die ConsecutiveID als eine Funktion genannt habe. Danke für jede Hilfe.
Verwenden Sie nicht 'return',' df' wird immer noch in der Funktion aktualisiert. Beachten Sie, dass die meisten Pandas-Funktionen 'inplace = true' benötigen, um den df tatsächlich zu aktualisieren. – Julien
Nach den beiden Anweisungen geben Sie einfach das 'df' zurück. – shivsn
@JulienBernu - Tolles Dankeschön, das hat den Syntaxfehler gelöst .. Andere Probleme beim Anwenden der Funktion. Danke für die Hilfe! – Justin