Pandas DataFrame DataFrame.shift()関数
Suraj Joshi
2023年1月30日
-
pandas.DataFrame.shift()
の構文: -
コード例:行に沿ってシフトする
DataFrame.shift()
関数 -
コード例:列に沿ってシフトする
DataFrame.shift()
関数 -
コード例:
fill_value
パラメータを指定するDataFrame.shift
メソッド
Pandas DataFrame.shift
メソッドは、オプションの時間頻度で指定された期間だけ DataFrame
のインデックスをシフトするために使用されます。
pandas.DataFrame.shift()
の構文:
DataFrame.shift(periods=1, freq=None, axis=0, fill_value=None)
パラメーター
periods |
整数。負または正のインデックスをシフトする期間数を決定します |
freq |
DateOffset 、tseries.offsets 、timedelta 、または str 。データを再調整せずにインデックス値をシフトするために使用されるオプションのパラメーター |
axis |
行(axis = 0 )または列(axis = 1 )に沿ってシフト |
fill_value |
新しく導入された欠損値に使用されるスカラー値。 |
戻り値
シフトされたインデックス値を持つ DataFrame
オブジェクトを返します。
コード例:行に沿ってシフトする DataFrame.shift()
関数
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)
shifted_df=df.shift(periods=1)
print("Shifted DataFrame")
print(shifted_df)
出力:
Original DataFrame:
X Y
0 1 4
1 2 1
2 3 8
Shifted DataFrame
X Y
0 NaN NaN
1 1.0 4.0
2 2.0 1.0
ここでは、periods
の値を 1
に設定します。これにより、DataFrame
の行が上から 1
の単位だけ下にシフトします。
下にシフトしている間、一番上の行は空になり、デフォルトで NaN
値で埋められます。
行を下から上にシフトする場合は、periods
パラメーターに負の値を設定できます。
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)
shifted_df=df.shift(periods=-2)
print("Shifted DataFrame")
print(shifted_df)
出力:
Original DataFrame:
X Y
0 1 4
1 2 1
2 3 8
Shifted DataFrame
X Y
0 3.0 8.0
1 NaN NaN
2 NaN NaN
行を 2
の周期で下から上にシフトします。
コード例:列に沿ってシフトする DataFrame.shift()
関数
列軸をシフトしたい場合は、shift()
メソッドで axis = 1
を設定します。
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)
shifted_df=df.shift(periods=1,axis=1)
print("Shifted DataFrame")
print(shifted_df)
出力:
Original DataFrame:
X Y
0 1 4
1 2 1
2 3 8
Shifted DataFrame
X Y
0 NaN 1.0
1 NaN 2.0
2 NaN 3.0
ここでは、periods
の値を 1
に設定します。これにより、DataFrame
の列が左から 1
単位だけ右にシフトします。
列軸を右から左にシフトする場合は、periods
パラメーターに負の値を設定します。
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)
shifted_df=df.shift(periods=-1,axis=1)
print("Shifted DataFrame")
print(shifted_df)
出力:
Original DataFrame:
X Y
0 1 4
1 2 1
2 3 8
Shifted DataFrame
X Y
0 4.0 NaN
1 1.0 NaN
2 8.0 NaN
列を 1
の期間だけ右から左にシフトします。
コード例:fill_value
パラメータを指定する DataFrame.shift
メソッド
前の例では、シフト後の欠損値はデフォルトで NaN
で埋められています。また、fill_value
パラメータを使用して、欠落した値を NaN
ではなく他の値で埋めることもできます。
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)
shifted_df=df.shift(periods=-1,
axis=1,
fill_value=4)
print("Shifted DataFrame")
print(shifted_df)
出力:
Original DataFrame:
X Y
0 1 4
1 2 1
2 3 8
Shifted DataFrame
X Y
0 4 4
1 1 4
2 8 4
shift()
メソッドによって作成されたすべての欠損値を 4
で埋めます。
著者: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn