Как поменять местами две строки в pandas (с примером)


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

 def swap_rows (df, row1, row2):
    df. iloc [row1], df. iloc [row2] = df. iloc [row2]. copy (), df. iloc [row1]. copy ()
    return df

Эта функция поменяет местами позиции строк в позициях индекса row1 и row2 в DataFrame.

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

Пример: поменять местами две строки в Pandas

Предположим, у нас есть следующий DataFrame pandas:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavs', 'Nets', 'Kings', 'Cavs', 'Heat', 'Magic'],
                   ' points ': [12, 15, 22, 29, 24, 22],
                   ' assists ': [4, 5, 10, 8, 7, 10]})

#view DataFrame
print (df)

    team points assists
0 Mavs 12 4
1 Nets 15 5
2Kings 22 10
3 Cavs 29 8
4 Heat 24 7
5 Magic 22 10

Мы можем определить функцию swap_rows() для замены строк в индексных позициях 0 и 4 в DataFrame:

 #define function to swap rows
def swap_rows (df, row1, row2):
    df. iloc [row1], df. iloc [row2] = df. iloc [row2]. copy (), df. iloc [row1]. copy ()
    return df

#swap rows in index positions 0 and 4
df = swap_rows(df, 0 , 4 )

#view updated DataFrame
print (df)

    team points assists
0 Heat 24 7
1 Nets 15 5
2Kings 22 10
3 Cavs 29 8
4 Mavs 12 4
5 Magic 22 10

Обратите внимание, что строки в позициях индекса 0 и 4 были заменены местами, в то время как все остальные строки остались в той же позиции.

Примечание . В функции swap_rows() мы использовали функцию .iloc для выбора строк из DataFrame на основе их индексной позиции.

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

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

Pandas: как подсчитать появление определенного значения в столбце
Pandas: получить индекс строк, столбец которых соответствует значению
Pandas: Как подсчитать пропущенные значения в DataFrame

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *