Pandas DataFrame DataFrame.shift()関数
Suraj Joshi
2023年1月30日
Pandas
Python DataFrame
-
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 で埋めます。
チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
著者: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn