Io uso pandas.to_datetime
per analizzare le date nei miei dati. Pandas per impostazione predefinita rappresenta le date con datetime64[ns]
anche se le date sono tutte solo giornaliere. Mi chiedo se esiste un modo elegante/intelligente per convertire le date in datetime.date
o datetime64[D]
in modo che, quando scrivo i dati su CSV, le date non vengano aggiunte con 00:00:00
. So che posso convertire il tipo di elemento per elemento manualmente:Mantieni solo la parte della data quando si utilizza pandas.to_datetime
[dt.to_datetime().date() for dt in df.dates]
Ma questo è molto lento dal momento che ho molte righe ed è sorta di sconfitte lo scopo di utilizzare pandas.to_datetime
. C'è un modo per convertire lo dtype
dell'intera colonna in una sola volta? Oppure, in alternativa, lo standard pandas.to_datetime
supporta una specifica di precisione in modo che sia possibile eliminare la parte temporale mentre si lavora con i dati giornalieri?
non so un buon modo, ma 'df.dates.apply (lambda x: x.date())' dovrebbe essere almeno un po 'più veloce. dare un'occhiata a https://github.com/pydata/pandas/issues/2583 – root
possibile duplicato di [Come specificare il formato della data quando si utilizza pandas.to \ _csv?] (http://stackoverflow.com/questions/ 13999850/how-to-specific-date-format-when-using-pandas-to-csv) – unutbu
Considererei queste due domande come diverse. Il possibile duplicato a cui si fa riferimento mira a suddividere la parte di data e ora da una colonna datetime. Questa domanda è motivata convertendo l'intera colonna in una sola volta. Immagina di avere un dataframe con 20 colonne che rappresentano le date. Non vorresti specificare quali colonne scrivere in csv, come suggerito nell'altra domanda. – ezbentley