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
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
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')
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