web-dev-qa-db-ja.com

pandas日付から週番号への変換

pandasデータフレームのデータから週番号を抽出したいと思います。

日付形式はdatetime64 [ns]です

日付を正規化して時刻を削除しました

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

日付は次のようになります-2015-06-17データフレーム列

そして今、それを週数に変換するのが好きです。

前もって感謝します

30
tony

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

strftime を使用した別の可能性があります。 strftime.org は良いリソースです。

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

'%U'は、ゼロが埋め込まれた10進数として、年の週番号(週の最初の日として日曜日)を表します。新しい年の最初の日曜日に先行するすべての日は、0週目と見なされます。

複数年の日付がある場合は、年と週の組み合わせを作成することをお勧めします

df['Year-Week'] = df['Date'].dt.strftime('%Y-%U')
19
Axel

Pandasには_.dayofyear_および_.weekofyear_機能があり、pandas.to_datetime(df['column_name'])の出力にすぐに適用でき、出力として「タイムスタンプ」タイプを指定できます。

_import pandas as pd
df['formatted_date'] = pd.to_datetime(df['datetime'])
df['day_of_year'] = df.formatted_date.apply(lambda x: x.dayofyear)
df['week_of_year'] = df.formatted_date.apply(lambda x: x.weekofyear)
_
2
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