Pandas DataFrame DataFrame.shift() 函数
Suraj Joshi
2023年1月30日
2020年6月17日
-
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
填充。
Author: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn