Метод shift
Метод shift применяется к DataFrame
и выполняет сдвиг данных на заданное количество периодов.
Параметр periods задаёт число шагов для сдвига.
Положительное значение сдвигает данные вниз (вперёд), отрицательное - вверх (назад).
Параметр axis определяет ось для сдвига: 0 (индексы) или 1 (столбцы).
Параметр fill_value заполняет образовавшиеся пропуски указанным значением.
Синтаксис
df.shift(periods=1, axis=0, fill_value=None)
Пример
Выполним сдвиг данных на одну строку вниз:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
print(df.shift(periods=1))
Результат выполнения кода:
a b
0 NaN NaN
1 1.0 10.0
2 2.0 20.0
3 3.0 30.0
4 4.0 40.0
Пример
Сдвинем данные на две строки вверх с заполнением пропусков:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
print(df.shift(periods=-2, fill_value=0))
Результат выполнения кода:
a b
0 3 30
1 4 40
2 5 50
3 0 0
4 0 0
Пример
Сдвинем данные вдоль оси столбцов на одну позицию вправо:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
print(df.shift(periods=1, axis=1))
Результат выполнения кода:
a b
0 NaN 1.0
1 NaN 2.0
2 NaN 3.0
3 NaN 4.0
4 NaN 5.0
Пример
Сдвинем данные на три строки вниз с заполнением пропусков значением 999:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
print(df.shift(periods=3, fill_value=999))
Результат выполнения кода:
a b
0 999 999
1 999 999
2 999 999
3 1 10
4 2 20
Смотрите также
-
метод
diff,
который вычисляет разницу между значениями -
метод
pct_change,
который вычисляет процентное изменение -
метод
rolling,
который создает скользящее окно для вычислений -
метод
cumsum,
который вычисляет кумулятивную сумму