pandas.core.groupby.DataFrameGroupBy.shift # DataFrameGroupBy。shift ( period = 1 , freq = None , axis = _NoDefault.no_default , fill_value = _NoDefault.no_default , suffix = None ) [来源] # 按周期观察移动每组。 如果传递 freq,则将使用周期和频率增加索引。 参数: 周期int |序列[int],默认1要转换的周期数。如果是值列表,则按每个周期移动每个组。 freq str,可选频率字符串。 axis轴要平移,默认0改变方向。 自版本 2.1.0 起已弃用:对于 axis=1,改为对基础对象进行操作。否则,axis 关键字不是必需的。 fill_value可选用于新引入的缺失值的标量值。 版本 2.1.0 中已更改:也会引发ValueErroriffreq也提供。 后缀str,可选如果有多个句点,则添加到每个移位列的字符串。否则忽略。 返回: 系列或数据框对象在每组内移动。 也可以看看 Index.shift索引的移位值。 例子 对于系列分组依据: >>> lst = ['a', 'a', 'b', 'b'] >>> ser = pd.Series([1, 2, 3, 4], index=lst) >>> ser a 1 a 2 b 3 b 4 dtype: int64 >>> ser.groupby(level=0).shift(1) a NaN a 1.0 b NaN b 3.0 dtype: float64 对于 DataFrameGroupBy: >>> data = [[1, 2, 3], [1, 5, 6], [2, 5, 8], [2, 6, 9]] >>> df = pd.DataFrame(data, columns=["a", "b", "c"], ... index=["tuna", "salmon", "catfish", "goldfish"]) >>> df a b c tuna 1 2 3 salmon 1 5 6 catfish 2 5 8 goldfish 2 6 9 >>> df.groupby("a").shift(1) b c tuna NaN NaN salmon 2.0 3.0 catfish NaN NaN goldfish 5.0 8.0