Обобщенный подход к построению строковых операторов логической логики на лаговых строках для пандам - PullRequest
0 голосов
/ 08 ноября 2018

Я хочу создать новый столбец внутри фрейма данных, значения которого основаны на сравнении логических критериев элементов строки (по строкам) и элементов столбца (т. Е. С помощью shift ()) в одном и том же логическом выражении. Я надеюсь, что гибкое решение поможет другим. Например:

  • Найти строки в кадре данных, где только один столбец имеет максимально возможное значение (например, 8 для примера ниже) среди столбцы.
  • Для каждой строки, соответствующей вышеуказанным критериям, укажите столбец имеет максимальное значение 8.
  • Теперь посмотрите на запаздывающее значение этого максимального значения, если запаздывание меньше 8 (то есть 7), присвойте значение 1 в новом столбце, называемом успехом, в противном случае присвойте 0.

Пример прост: он содержит только размер окна два (текущий и с задержкой 1). Я надеюсь на обобщенную логику, которая может охватывать более 3 столбцов и более 1 строки с лагами. Мой фрейм данных называется bob, а индекс находится в обратном порядке, так как у моего фрейма данных, как правило, сначала самые последние даты. кстати, у меня есть части этого решения, так как у меня была некоторая предыдущая поддержка части этой проблемы в предыдущем посте.

    import numpy as np
    import pandas as pd
    Bob = pd.DataFrame({'C1':[3,2,4,6,6,7,8],'C2':[5,4,6,4,7,3,2],'C3':      [5,4,6,7,8,6,4],'Success':[0,0,0,0,1,0,1]})
    Bob1 = Bob[::-1]
    Bob1
...