Как сдвинуть столбец в Pandas (с примерами)


Вы можете использовать функцию shift() для смещения значений столбца вверх или вниз в кадре данных pandas:

#shift values down by 1
df['column1'] = df['column1']. shift (1)

#shift values up by 1
df['column1'] = df['column1']. shift (-1)

В следующих примерах показано, как использовать эту функцию на практике со следующими пандами DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'product': ['A', 'B', 'C', 'D', 'E', 'F'],
 'sales': [4, 7, 8, 12, 15, 19]})

#view DataFrame
df

 product sales
0 A 4
1 B 7
2 C 8
3 D 12
4 E 15
5 F 19

Пример 1. Сдвиг на один столбец вверх или вниз

Следующий код показывает, как сдвинуть все значения столбца product вниз на 1:

#shift all 'product' values down by 1
df['product'] = df['product']. shift (1)

#view updated DataFrame
df

 product sales
0 NaN 4
1 A 7
2 B 8
3 C 12
4 D 15
5 E 19

Обратите внимание, что каждое значение в столбце «продукт» было сдвинуто вниз на 1, а первое значение в столбце заменено на NaN.

Также обратите внимание, что последнее значение в столбце продукта («F») полностью удалено из DataFrame.

Чтобы сохранить значение «F» в DataFrame, нам нужно сначала добавить пустую строку в конец DataFrame, а затем выполнить сдвиг:

import numpy as np

#add empty row to bottom of DataFrame
df.loc[len(df.index )] = [np.nan , np.nan ]

#shift all 'product' values down by 1
df['product'] = df['product']. shift (1)

#view updated DataFrame
df

 product sales
0 NaN 4.0
1 A 7.0
2 B 8.0
3 C 12.0
4 D 15.0
5 E 19.0
6 F NaN

Обратите внимание, что значение «F» сохраняется как последнее значение в столбце «продукт».

Пример 2. Сдвиг нескольких столбцов вверх или вниз

В следующем коде показано, как сдвинуть все значения столбцов «продукт» и «продажи» вверх на 2:

#shift all 'product' and 'sales' values up by 2
df[['product', 'sales']] = df[['product', 'sales']]. shift (-2)

#view updated DataFrame
df

 product sales
0 C 8.0
1 D 12.0
2 E 15.0
3 F 19.0
4 NaN NaN
5 NaN NaN

Обратите внимание, что каждое значение в столбцах «продукт» и «продажи» было сдвинуто вверх на 2, а два нижних значения в каждом столбце заменены на NaN.

Примечание.Полную документацию по функции shift() можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:

Как добавить строки в Pandas DataFrame
Как добавить столбец в Pandas DataFrame
Как добавить строку заголовка в Pandas DataFrame