2 votes

Formater un tableau de calendrier en dataframe de type datetime

J'ai des données de calendrier dans le format suivant :

        df = pd.read_csv('2021.txt', sep="  ")
        df.head()

enter image description here

J'aimerais l'avoir en tant que :

   Date       y
 2021-01-01 17:26
 2021-01-02 17:27
 2021-01-03 17:28
 2021-01-04 17:28
      ...
 2021-12-31 17:25

J'ai cherché et je n'ai pas trouvé de questions similaires. J'essaie de fournir un exemple minimal, mais je ne sais pas par où commencer. Je sais que je dois utiliser la fonction pandas.to_datetime mais je ne sais même pas comment l'appliquer dans ce cas car tout est séparé.

2voto

jezrael Points 290608

Utilisation DataFrame.melt con to_datetime y errros='coerce' pour convertir des dates erronées comme 2021-02-30 aux valeurs manquantes, puis supprimer ces lignes par DataFrame.dropna :

df1 = df.melt('Day', var_name='Date', value_name='y')
df1['Date'] = pd.to_datetime('2021'  + df1['Date'] + df1.pop('Day').astype(str), 
                             format='%Y%b%d', errors='coerce')
df1 = df1.dropna(subset=['Date'])
print (df1)  
         Date      y
0  2021-01-01  17:28
1  2021-01-02  17:27
2  2021-01-03  17:28
3  2021-01-04  17:28
4  2021-01-05  17:29
..        ...    ...
67 2021-12-02  17:15
68 2021-12-03  17:15
69 2021-12-04  17:15
70 2021-12-05  17:15
71 2021-12-06  17:15

[72 rows x 2 columns]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X