データ分析実践
上級問題チェック

問題 30 /40

pandasの時系列データを処理するメソッドや関数に関して、誤った説明はどれか。

選択 1

rollingメソッドを使って移動平均を算出できる。

選択 2

diffメソッドは一つ上の行との差分を取得する。

選択 3

shiftメソッドは行をずらす。

選択 4

min関数は最新の日時を返す。

解説

選択肢4が正解です。 次のDataFrameで解説します。 df = pd.DataFrame( {'データ': range(10)}, index=pd.date_range('2024-01-01', periods=10)) ▶︎ 【選択肢1】 rollingメソッドを使って移動平均を算出できる。 正しい説明です。 rollingメソッドは、データ区間をずらしながら関数を適用できます。rollingメソッドの返り値はwindow.Rolling型のオブジェクトで、そのオブジェクトに対してmeanメソッドやsumメソッドなどで集計します。 例えば3日間ずつの移動平均を求める場合は、次のように記述します。 df.rolling(3).mean() ▶︎ 1/3は1/1〜1/3の平均、1/4は1/2〜1/4の平均となっています。 1/1と1/2は3行分のデータがないのでNaNになります。 【選択肢2】 diffメソッドは一つ上の行との差分を取得する。 正しい説明です。 df.diff(1) ▶︎ 1/2は1/1のデータとの差分、1/3は1/2とのデータとの差分になっています。 1/1は比較対象がないためNaNになります。 diffメソッドの引数は間隔を指定します。例えばdiff(2)であれば、1/3は1/1のデータとの差分になります。 【選択肢3】 shiftメソッドは行をずらす。 正しい説明です。 データを一行ずつ下にずらす場合は、次のように記述します。 df.shift(1) ▶︎ 例えば1日前との差分を求める場合、選択肢2のdiffメソッドを使う方法もありますが、shiftメソッドでずらして差分を計算することもできます。 df_shift = df.shift(1) df - df_shift ▶︎ 【選択肢4】 min関数は最新の日時を返す。 誤った説明です。 最新の日付を返すのはmax関数で、min関数は最古の日付を返します。 df.index.min() ▶︎ Timestamp('2024-01-01 00:00:00') df.index.max() ▶︎ Timestamp('2024-01-10 00:00:00')