Saltar al contenido

Pandas, convierte el formato de fecha y hora mm / dd / aaaa a dd / mm / aaaa

Solución:

Puedes usar el parse_dates y dayfirst argumentos de pd.read_csv, consulte: los documentos de read_csv ()

df = pd.read_csv('myfile.csv', parse_dates=['Date'], dayfirst=True)

Esto leerá el Date columna como valores de fecha y hora, tomando correctamente la primera parte de la entrada de fecha como el día. Tenga en cuenta que, en general, querrá que sus fechas se almacenen como objetos de fecha y hora.

Luego, si necesita generar las fechas como una cadena, puede llamar dt.strftime():

df['Date'].dt.strftime('%d/%m/%Y')

Cuando vuelva a usar esto: df['Date'] = pd.to_datetime(df['Date']), vuelve al formato anterior.

No, no puede tener simultáneamente el formato de cadena de su elección y mantener su serie de tipo datetime. Como se comentó aquí:

datetime las series se almacenan internamente como números enteros. Cualquier representación de fecha legible por humanos es solo eso, una representación, no el entero subyacente. Para acceder a su formato personalizado, puede utilizar los métodos disponibles en Pandas. Incluso puede almacenar dicha representación de texto en un pd.Series variable:

formatted_dates = df['datetime'].dt.strftime('%m/%d/%Y')

los dtype de formatted_dates estarán object, que indica que los elementos de su serie apuntan a tiempos de Python arbitrarios. En este caso, esos tipos arbitrarios son todas cadenas.

Por último, te recomiendo encarecidamente que hagas no convertir un datetime series a cadenas hasta el último paso de su flujo de trabajo. Esto se debe a que tan pronto como lo haga, ya no podrá utilizar operaciones vectorizadas eficientes en una serie de este tipo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *