J'ai une trame de données qui contient une colonne avec des dates, par exemple 24/07/15 etc Existe-t-il un moyen de créer une nouvelle colonne dans la trame de données qui affiche tous les jours de la semaine correspondant à la colonne 'Date' déjà existante?

Je veux que la sortie apparaisse comme: [Date] [DayOfTheWeek]

1
Keyan H 18 avril 2020 à 15:05

3 réponses

Meilleure réponse

Cela pourrait fonctionner:

Si vous voulez le nom du jour:

In [1405]: df                                                                                                                                                                                               
Out[1405]: 
      dates
0  24/07/15
1  25/07/15
2  26/07/15    

In [1406]: df['dates'] = pd.to_datetime(df['dates']) # You don't need to specify the format also.                                                                                                                                                      

In [1408]: df['dow'] = df['dates'].dt.day_name()                                                                                                                                                            

In [1409]: df                                                                                                                                                                                               
Out[1409]: 
       dates       dow
0 2015-07-24    Friday
1 2015-07-25  Saturday
2 2015-07-26    Sunday

Si vous voulez un numéro de jour:

In [1410]: df['dow'] = df['dates'].dt.day                                                                                                                                                                   

In [1411]: df                                                                                                                                                                                               
Out[1411]: 
       dates  dow
0 2015-07-24   24
1 2015-07-25   25
2 2015-07-26   26
1
Mayank Porwal 18 avril 2020 à 12:17

J'essaierais la fonction apply, donc quelque chose comme ceci:

def extractDayOfWeek(dateString):
    ...

df['DayOfWeek'] = df.apply(lambda x: extractDayOfWeek(x['Date'], axis=1)

L'idée est que, vous mappez sur chaque ligne, extrayez la colonne «date», puis appliquez votre propre fonction pour créer une nouvelle entrée de ligne nommée «Jour»

0
DanielDavies 18 avril 2020 à 12:08

Selon le type de votre colonne Date.

df['Date']=pd.to_datetime(df['Date'], format="d/%m/%y") 
df['weekday'] = df['Date'].dt.dayofweek
0
Renaud 18 avril 2020 à 12:15