El DateTimeIndex desaparece después de una fusión. ¿Por qué?
Tengo un dataframe con más de 1000 registros. El índice está en la fecha de reserva.
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 1642 entradas, 2021-01-03 a 2021-12-16
Columnas de datos (total 26 columnas):
# Columna Non-Null Count Dtype
--- ------ -------------- -----
0 bankrek 1642 no nulos object
1 Munt 1642 no nulos object
......
......
23 Oorspr munt 0 no nulos float64
24 Koers 0 no nulos float64
25 categoría 1642 no nulos object
dtypes: datetime64[ns](1), float64(9), int64(1), object(15)
uso de memoria: 346.4+ KB
Después de hacer un .merge, mi DateTimeIndex ha desaparecido. El merge realiza una búsqueda en la tabla de categorías y agrega dos columnas de texto.
dfIn = dfIn.merge(dfGrootboek, how="left", on="categoría")
dfIn.info()
<class 'pandas.core.frame.DataFrame'>
ÍndiceInt64: 1642 entradas, 0 a 1641
Columnas de datos (total 28 columnas):
# Columna Non-Null Count Dtype
--- ------ -------------- -----
0 bankrek 1642 no nulos object
1 Munt 1642 no nulos object
2 BIC 1642 no nulos object
3 Volgnr 1642 no nulos int64
....
....
23 Oorspr munt 0 no nulos float64
24 Koers 0 no nulos float64
25 categoría 1642 no nulos object
26 Grootboek 1578 no nulos object
27 Kleinboek 1578 no nulos object
dtypes: datetime64[ns](1), float64(9), int64(1), object(17)
uso de memoria: 372.0+ KB
La salida es como se desea, excepto por el hecho de que mi índice de fecha ha desaparecido, en su lugar veo números. Quiero mantener el índice de fecha porque lo necesito para el reporte por mes y demás. ¿Qué estoy haciendo mal aquí?
davy.ai
Parece que la operación de fusión está creando un nuevo índice basado en el orden de las filas en el DataFrame resultante. Para mantener el índice datetime original, puedes restablecer el índice antes de la operación de fusión y luego volver a establecerlo después de la operación de fusión utilizando el método
set_index
.Aquí hay un ejemplo:
Esto debería preservar tu índice datetime original.