Ich habe einen Pandas-Datenrahmen. Ich möchte eine meiner Spalten "hinterherhinken". Dies bedeutet beispielsweise, dass die gesamte Spalte 'gdp' um eins nach oben verschoben und dann alle überschüssigen Daten am Ende der verbleibenden Zeilen entfernt werden, sodass alle Spalten wieder gleich lang sind.
df =
y gdp cap
0 1 2 5
1 2 3 9
2 8 7 2
3 3 4 7
4 6 7 7
df_lag =
y gdp cap
0 1 3 5
1 2 7 9
2 8 4 2
3 3 7 7
Wie auch immer, um das zu tun?
df.dropna()
Sie einfach und es werden alle NaN-Zeilen gelöscht, ohne dass Sie die Anzahl der zu löschenden Zeilen angeben müssen.Verschiebungsspalte gdp nach oben:
df.gdp = df.gdp.shift(-1)
und entfernen Sie dann die letzte Zeile
quelle
So verschieben Sie beispielsweise einfach um 5 Werte und entfernen auch die NaN-Zeilen, ohne die Anzahl der Werte verfolgen zu müssen, um die Sie verschoben haben:
d['gdp'] = df['gdp'].shift(-5) df = df.dropna()
quelle
df.gdp = df.gdp.shift(-1) ## shift up df.gdp.drop(df.gdp.shape[0] - 1,inplace = True) ## removing the last row
quelle
Verschieben Sie zuerst die Spalte:
df['gdp'] = df['gdp'].shift(-1)
Zweitens entfernen Sie die letzte Zeile, die eine NaN-Zelle enthält:
df = df[:-1]
Drittens den Index zurücksetzen:
df = df.reset_index(drop=True)
quelle