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”])

このコードは、次のような処理を行います:

  1. NumPyとPandasをインポートします。
  2. np.random.seed(123)を使って、乱数のシードを設定します。これにより、同じシードを使用している場合、後続の乱数生成は再現可能になります。
  3. pd.date_range()を使用して、2017年4月1日から365日間の日付の範囲を生成します。
  4. pd.DataFrame()を使用して、1から30の範囲でランダムな整数値を365個生成し、これらの値をrandという列名で持つDataFrame(df)を作成します。インデックスには先ほど生成した日付の範囲を使用します。
  5. pd.Grouper()を使用して、週ごとのデータに集約します。ここでは土曜日を週の終わりとして指定しています。
  6. df.groupby()を使用して、週ごとに合計を計算します。この場合、sum()関数が使用され、rand列の値が週ごとに合計されます。
  7. この週ごとの合計値を持つDataFrame(df_year)が生成されます。

最後に、dfdf_yearを出力していますが、df_yearの行数は365日を週単位で集約した結果になります。

未分類

Posted by ぼっち