Python: Как передать строку и метод следующей строки DataFrame.apply ()?

голоса
0

У меня есть DataFrame с тысячами строк. Его структура, как показано ниже

     A    B    C     D 
 0   q   20    'f'
 1   q   14    'd'
 2   o   20    'a'

Я хочу, чтобы сравнить столбец A текущей строки и следующей строки. Если эти значения равны Я хочу добавить значение столбца B, который имеет более низкую величину в колонке D по сравнению строки, которая имеет большее значение. Тогда я хочу, чтобы удалить перемещенный значение столбца столбец B. Это как процесс обмена.

    A    B    C     D 
0   q   20    'f'   14
1   o   20    'a'

У меня есть тысячи строк и iloc, LOC, на методы работают медленно. По крайней мере, я хочу использовать DataFrame применить метод. Я пробовал некоторые примеры кода, но они не работали.

Я хочу сделать что-то, как показано ниже: DataFrame.apply (лямбда-строку: self.compare (строка, следующая (строка)), ось = 1))

У меня есть сравнить метод, но я не мог пройти следующую строку к сравнивающемуся методу. Как я могу передать его методу? Кроме того, я открыт, чтобы услышать быстрее панда решения.

Задан 19/03/2020 в 21:58
источник пользователем
На других языках...                            


1 ответов

голоса
0

Лучше не делать , что с , applyкак это будет медленно; Вы можете посмотреть на использование shift, например ,

df['A_shift'] = df['A'].shift(1)
df['Is_Same'] = 0
df.loc[df.A_shift == df.A, 'Is_Same'] = 1

Получает немного более сложным, если вы делаете сдвиг в группах, но все-таки возможно.

Ответил 19/03/2020 в 22:03
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more