Сравните только две строки в кадре данных друг с другом - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть фрейм данных со столбцом focus_duration, и я хочу сравнить эту пару данных по смыслу, имея в виду ноль и одну строку, строки два и три, строки четыре и пять и т. Д. c. Если первое целое число больше второго, запишите 1 в новом столбце. Если оно меньше, напишите -1, а если оно будет равно 0. Я попытался создать список и сравнить один элемент со следующим. Но таким образом он сравнивает элемент два с элементом три и элемент три с элементом четыре, чего я не хочу.

a = df['focus_duration'].tolist()
b = []

for i in range(0, (len(a)-1)):
    if a[i] < a[i+1]:
        b.append(0)
    elif a[i] > a[i+1]:
        b.append(1)

1 Ответ

1 голос
/ 14 февраля 2020

Вам нужно проверить условие, если номер вашей строки нечетный или четный. Я добавляю условие в ваш собственный код. Также, например, когда вы используете range(3), он выполняет итерацию от 0 до 2.

a = df['focus_duration'].tolist()
b = []

for i in range(len(a)):
    if i%2 == 0:
        if a[i] < a[i+1]:
            b.append(0)
        elif a[i] > a[i+1]:
            b.append(1)
    else:
        if a[i] < a[i-1]:
            b.append(0)
        elif a[i] > a[i-1]:
            b.append(1)

Этот код сравнивает ноль с одним, один с нулем, два с тремя и три с двумя, и так далее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...