Панды сравнивают следующую строку

У меня есть dataframe, как это

d={} d['z']=['Q8','Q8','Q7','Q9','Q9'] d['t']=['10:30','10:31','10:38','10:40','10:41'] d['qty']=[20,20,9,12,12] 

Я хочу сравнить первую строку со второй строкой

  1. qty совпадает с следующей строкой AND
  2. t больше в следующей строке И
  3. значение z такое же, как в следующей строке

Требуемое значение

  qty tz valid 0 20 2015-06-05 10:30:00 Q8 False 1 20 2015-06-05 10:31:00 Q8 True 2 9 2015-06-05 10:38:00 Q7 False 3 12 2015-06-05 10:40:00 Q9 False 4 12 2015-06-05 10:41:00 Q9 True 

One Solution collect form web for “Панды сравнивают следующую строку”

Похоже, вы хотите использовать метод Series.shift .

Используя этот метод, вы можете создавать новые столбцы, которые смещаются к исходным столбцам. Как это:

 df['qty_s'] = df['qty'].shift(-1) df['t_s'] = df['t'].shift(-1) df['z_s'] = df['z'].shift(-1) 

Теперь вы можете сравнить их:

 df['is_something'] = (df['qty'] == df['qty_s']) & (df['t'] < df['t_s']) & (df['z'] == df['z_s']) 

Ниже приведен упрощенный пример работы Series.shift для сравнения следующей строки с текущим:

 df = pd.DataFrame({"temp_celcius":pd.np.random.choice(10, 10) + 20}, index=pd.date_range("2015-05-15", "2015-05-24")) df temp_celcius 2015-05-15 21 2015-05-16 28 2015-05-17 27 2015-05-18 21 2015-05-19 25 2015-05-20 28 2015-05-21 25 2015-05-22 22 2015-05-23 29 2015-05-24 25 df["temp_c_yesterday"] = df["temp_celcius"].shift(1) df temp_celcius temp_c_yesterday 2015-05-15 21 NaN 2015-05-16 28 21 2015-05-17 27 28 2015-05-18 21 27 2015-05-19 25 21 2015-05-20 28 25 2015-05-21 25 28 2015-05-22 22 25 2015-05-23 29 22 2015-05-24 25 29 df["warmer_than_yesterday"] = df["temp_celcius"] > df["temp_c_yesterday"] temp_celcius temp_c_yesterday warmer_than_yesterday 2015-05-15 21 NaN False 2015-05-16 28 21 True 2015-05-17 27 28 False 2015-05-18 21 27 False 2015-05-19 25 21 True 2015-05-20 28 25 True 2015-05-21 25 28 False 2015-05-22 22 25 False 2015-05-23 29 22 True 2015-05-24 25 29 False 

Если я неправильно понял ваш запрос, отправьте комментарий, и я обновлю ответ.

  • Считайте вхождения строки с pandas в python
  • pandas конвертирует поплавки в строки без десятичных знаков
  • Панды: длина пробега NaN
  • Как объединить 2 столбца в 1 в одном и том же фрейме (Python, Pandas)?
  • HTML-код для отображения разбитого data_frame на одной странице html с использованием python
  • Python, Pandas: каждый раз каждые два ряда
  • Как использовать средний метод для pandas TimeSeries с значениями десятичного типа?
  • Pandas: подсчет уникальных значений в кадре данных
  • Функция Pandas Groupby Agg не уменьшает
  • Pandas написать таблицу для MySQL
  • Часовая частота с Python
  •  
    Interesting Posts for Van-Lav

    Программно открывать URL-адреса в веб-браузере в Python

    Чтение данных из текстового файла с отсутствующими значениями

    Как проверить одну переменную на несколько значений?

    Напишите программу, которая печатает количество раз, когда строка «bob» встречается в s? где s предварительно определено

    объект формы не имеет атрибута 'cleaned_data'

    Любое красивое форматирование строки python для счетчика?

    Соответствие BFMatcher в ошибке запуска OpenCV

    Цель обратной косой черты в конце строки

    Как преобразовать строку в функцию в python?

    Невозможно изменить элементы списка в цикле Python

    pandas dataframe с заголовком 2 строки и экспорт в csv

    Старт-стоп HDFStore не работает

    Как использовать метод в классе из другого класса, который наследует от еще одного класса python

    «Заморозить» некоторые переменные / области действия в тензорном потоке: stop_gradient vs пропускает переменные для минимизации

    Как методы, `classmethod` и` staticmethod` реализованы в Python?

    Python - лучший язык программирования в мире.