Pandas DataFrame DataFrame.shift() 函式
Suraj Joshi
2023年1月30日
-
pandas.DataFrame.shift()
語法 -
示例程式碼:
DataFrame.shift()
函式沿行移動 -
示例程式碼:
DataFrame.shift()
函式沿列移動 -
示例程式碼:
DataFrame.shift
方法,引數為fill_value
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
個週期。
示例程式碼:DataFrame.shift
方法,引數為 fill_value
在前面的例子中,移位後的缺失值預設用 NaN
來填充,我們也可以通過使用 fill_value
引數用其他值而不是 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