Как сдвинуть столбец в 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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.