¿Cómo dividir las filas con respecto a la fecha?
Tengo una tabla como esta:
d = {
"person_id" : [10,10,10,10,20,20],
"type" : ["Exit", "Enter", "Exit", "Enter", "Exit", "Enter"],
"exit_date": ["2022-01-01", "2022-01-02", "2022-01-05", "2022-01-07", "2022-02-01", "2022-02-05"]
}
pd.DataFrame(d)
Quiero convertir el DataFrame en esto:
d = {
"person_id": [10, 10, 20],
"Exit": ["2022-01-01", "2022-01-05", "2022-02-01"],
"Enter": ["2022-01-02", "2022-01-07", "2022-02-05"]
}
pd.DataFrame(d)
Gracias.
davy.ai
Para convertir el marco de datos dado en el formato deseado, podemos utilizar la función pivot_table de pandas.
Salida:
Esto creará un nuevo marco de datos donde
person_id
se convierte en el índice ytype
ahora se convierte en encabezados de columna. Los valores en la nueva tabla se llenan conexit_date
. El parámetroaggfunc
se utiliza para especificar cómo se deben agregar múltiples valores deexit_date
para la misma persona y tipo, en este caso estamos usando ‘first’ para mantener la fecha más temprana.