CHRD:
He df
debajo del cual he ordenados según la ID
variable y la variable tiempo T
como el tipo secundario.
df = pd.DataFrame({
'ID': ['a', 'b', 'c', 'b', 'b'],
'T': [
datetime.datetime(2019, 1, 1),
datetime.datetime(2017, 1, 1),
datetime.datetime(2018, 1, 1),
datetime.datetime(2020, 1, 1),
datetime.datetime(2021, 1, 1)],
'V': [3, 5, 8, 6, 1]
}).sort_values(['ID', 'T'], ascending=False)
df
ID T V
2 c 2018-01-01 8
4 b 2021-01-01 1
3 b 2020-01-01 6
1 b 2017-01-01 5
0 a 2019-01-01 3
Quiero añadir una nueva columna V_L
donde, para cada uno ID
, el último valor (sobre la base de la columna de tiempo T
se muestra). Si no hay un último valor de esto debe ser indicado por un null
valor V_L
. Una salida de ejemplo se vería así:
df
ID T V V_L
0 a 2018-01-01 8 NaN
1 b 2021-01-01 1 6.0
2 b 2020-01-01 6 5.0
3 b 2017-01-01 5 NaN
4 c 2019-01-01 3 NaN
YOBEN_S:
Damon
df['V_L'] = df.groupby('ID').V.shift(-1)
df
Out[350]:
ID T V V_L
2 c 2018-01-01 8 NaN
4 b 2021-01-01 1 6.0
3 b 2020-01-01 6 5.0
1 b 2017-01-01 5 NaN
0 a 2019-01-01 3 NaN