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

У меня есть 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 

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

  • линейная регрессия для таймера python (numpy или pandas)
  • pandas намного медленнее, чем numpy?
  • Параллельное применение функции в pandas python. работал в группе
  • Изменение имен нескольких столбцов, но не всех из них - Panda Python
  • pandas: несколько условий при индексировании кадра данных - неожиданное поведение
  • проверьте, находится ли строка в столбце dataframe pandas в списке
  • Панды: импорт Дата и 12 часов Время вместе
  • Функция распределения вероятности Python
  •  
    Interesting Posts for Van-Lav

    с использованием python regex для извлечения определенных URL-адресов из текста

    Копирование файлов с помощью Python под Windows

    Отменить скопированную копию файла в python на окнах

    Python 2.7.9 Mac OS 10.10.3 Сообщение «setCanCycle: устарело. Вместо этого используйте setCollectionBehavior вместо "

    Исправление ошибки обрыва трубы в uWSGI с помощью Python

    Любая причина НЕ всегда использовать аргументы ключевого слова?

    python – Проблема сохранения символа Unicode для MySQL с Django

    Как представить странный график в некоторой структуре данных

    В Django вы можете добавить метод к запросам?

    Какая лучшая библиотека с открытым исходным кодом Python для рисования графика?

    Преобразование программы из QBasic в Python

    Ожидание анимации в командной строке (Python)

    используйте внешний скрипт python, чтобы открыть майю и запустить другой скрипт внутри майи

    Структура Django REST: AttributeError: объект Serializer не имеет атрибута 'Meta'

    Сервер XMPP для Python

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