import numpy as np import pandas as pd np.random.seed(123) dates = pd.date_range(start=” 2017-04-01″, periods=365) df = pd.DataFrame(np.random.randint(1, 31, 365), index=dates, columns=[“rand”]) df df_year = pd.DataFrame(df.groupby(pd.Grouper(freq=”W-SAT”)).sum(), columns=[“rand”])
このコードは、次のような処理を行います:
- NumPyとPandasをインポートします。
np.random.seed(123)を使って、乱数のシードを設定します。これにより、同じシードを使用している場合、後続の乱数生成は再現可能になります。pd.date_range()を使用して、2017年4月1日から365日間の日付の範囲を生成します。pd.DataFrame()を使用して、1から30の範囲でランダムな整数値を365個生成し、これらの値をrandという列名で持つDataFrame(df)を作成します。インデックスには先ほど生成した日付の範囲を使用します。pd.Grouper()を使用して、週ごとのデータに集約します。ここでは土曜日を週の終わりとして指定しています。df.groupby()を使用して、週ごとに合計を計算します。この場合、sum()関数が使用され、rand列の値が週ごとに合計されます。- この週ごとの合計値を持つDataFrame(
df_year)が生成されます。
最後に、dfとdf_yearを出力していますが、df_yearの行数は365日を週単位で集約した結果になります。

ディスカッション
コメント一覧
まだ、コメントがありません