次の Python コードの出力はどれでしょうか?
Python コード:
import pandas as pd
dates = pd.date_range(
start='2023-01-01',
periods=4,
freq='W')
data = [100, 110, 90, 120]
df = pd.DataFrame(
data,
index=dates,
columns=['A'])
print(df.pct_change())
回答の選択肢:
(A) 各週の値の割合
(B) 各週の変化率
(C) 各週の値の累積和
(D) 各週の差分
出力例:
A
2023-01-01 NaN
2023-01-08 0.100000
2023-01-15 -0.181818
2023-01-22 0.333333
正解: (B)
回答の選択肢:
(A) 各週の値の割合
(B) 各週の変化率
(C) 各週の値の累積和
(D) 各週の差分
このコードは、そのデータの週次のパーセンテージ変化を算出しています。
import pandas as pd
dates = pd.date_range(
start='2023-01-01',
periods=4,
freq='W')
data = [100, 110, 90, 120]
df = pd.DataFrame(
data,
index=dates,
columns=['A'])
print(df.pct_change())
詳しく説明します。
pandasのdate_range関数を使用して、2023年1月1日から始まる期間が4週間の日付インデックスを作成します。ここでの頻度値は「W」なので、週次の日付が生成されます。
dates = pd.date_range(
start='2023-01-01',
periods=4,
freq='W')
dates
に格納されているデータは次のようになっています。
DatetimeIndex(['2023-01-01', '2023-01-08', '2023-01-15', '2023-01-22'], dtype='datetime64[ns]', freq='W-SUN')
作成した日付インデックスとデータリスト[100, 110, 90, 120]を組み合わせてpandasのデータフレームを作成します。このデータフレームは日付をインデックスとし、単一の列’A’を含む値で構成されています。
data = [100, 110, 90, 120]
df = pd.DataFrame(
data,
index=dates,
columns=['A'])
df
に格納されているデータは次のようになっています。
A
2023-01-01 100
2023-01-08 110
2023-01-15 90
2023-01-22 120
データフレームのpct_changeメソッドを使用して、一つ前の行(つまり一週前)とのパーセンテージの差分を計算します。pct_changeメソッドは、隣接する二つの要素間のパーセンテージ変化を計算するため、前の行と比較した現在の行の変化を示します。
print(df.pct_change())
最初の行はNaN(not a number)で、これはこの行に前の行がないためにパーセンテージの変化を計算できないことを示しています。次の行は前の行と比べてどの程度パーセントで変化したかを示しています。
A
2023-01-01 NaN
2023-01-08 0.100000
2023-01-15 -0.181818
2023-01-22 0.333333