データ分析・中級問題チェック

問題 24 /40

pandasで、1年間の日毎の売上データに対し、次のコードを実行した結果として正しいものはどれか。 df.groupby(pd.Grouper(freq='W-SAT')).sum()

選択 1

土曜締めで週毎の売上を合計する。

選択 2

日曜締めで週毎の売上を合計する。

選択 3

毎月の第1土曜日で売上を合計する。

選択 4

毎月の第1日曜日で売上を合計する。

解説

選択肢1が正解です。 次のような1年間の日毎の売上データがある場合を考えます。 df = pd.DataFrame( np.random.randint(100, 1000, 365), index=pd.date_range('2023-01-01', periods=365), columns=['売上']) ▶︎ 問題文のコードを実行して先頭5行を表示すると、以下の結果になります。 df.groupby(pd.Grouper(freq='W-SAT')).sum().head() ▶︎ groupby関数はデータを「分割→適用→結合」する関数です。日付の場合は、Grouperオブジェクトを引数にすることで周期を指定できます。ここでは「freq='W-SAT'」を指定して日曜〜土曜の周期で「分割」し、それぞれにsum関数を「適用」し、DataFrameとして「結合」しています。 週次の「W」のデフォルトは日曜締めですが、「W-SAT」のように曜日を組み合わせることで、締める曜日を指定できます。上のDataFrameの「2023-01-07」や「2023-01-14」は土曜日です。 周期として指定できる主な引数は以下となります。 ------------------------------- D 日次 W 週次 M 月末ごと Q 四半期末ごと A 年末ごと H 毎時 T 毎分 S 毎秒 ------------------------------- (公式書籍 p.165)