web-dev-qa-db-fra.com

conversion d'un pandas date en numéro de semaine

Je voudrais extraire un numéro de semaine à partir de données dans un pandas dataframe.

Le format de la date est datetime64 [ns]

J'ai normalisé la date pour en retirer l'heure

df['Date'] = df['Date'].apply(pd.datetools.normalize_date)

donc la date ressemble maintenant à - 2015-06-17 dans la colonne du bloc de données

et maintenant j'aime convertir cela en un numéro de semaine.

Merci d'avance

30
tony

Accédez simplement à l'attribut dt week:

In [286]:
df['Date'].dt.week

Out[286]:
0    25
dtype: int64

In [287]:
df['Week_Number'] = df['Date'].dt.week
df

Out[287]:
        Date  Week_Number
0 2015-06-17           25
51
EdChum

Voici une autre possibilité en utilisant strftime . strftime.org est une bonne ressource.

df['Week_Number'] = df['Date'].dt.strftime('%U')

'%U' représente le numéro de semaine de l'année (dimanche comme premier jour de la semaine) sous la forme d'un nombre décimal avec un zéro. Tous les jours d'une nouvelle année précédant le premier dimanche sont considérés comme faisant partie de la semaine 0.

Si vous avez des dates de plusieurs années, je recommande de créer une combinaison année-semaine

df['Year-Week'] = df['Date'].dt.strftime('%Y-%U')
19
Axel
from datetime import date
df_date = pd.DataFrame([date.today()],columns  = ['today'])
print(df_date)
#### Print Output ####
#        today
#0  2019-09-07
df_date['weeknum'] = df_date.today.apply(lambda x:x.isocalendar()[1])
print(df_date)
#### Print Output ####
#        today  weeknum
#0  2019-09-07       36
0
Klaus Smit