как перебрать последние 300 строк столбца - PullRequest
0 голосов
/ 28 ноября 2018
x = pd.read_csv(filename)

if abs(x["b"].values[-1] - x["a"].values[-300]) <= 2:
    print('less than')
    x1=x.iloc[-300:]

** этот фрагмент кода, вычисляющий разницу между строкой -300 и -1, работает хорошо, но я хочу добавить больше условий, если разница между номером строки -300 и -1 больше 2, я хочупроверьте разницу для номеров строк -299 и -2, а затем - для -298 и -2, сделайте это десять раз и при каждом изменении одной точки, а если достигните разницы меньше 2, остановите процесс и отрежьте фрагмент данных между этими двумя точкамии если не нашли разницу меньше 2, то условие печати не найдено **

, если у кого-то есть хорошая идея, пожалуйста, поделитесь здесь.

1 Ответ

0 голосов
/ 28 ноября 2018

Это должно быть:

i, j = -1, -300

for _ in range(1, 11):
    if abs(x["b"].values[i] - x["a"].values[j]) <= 2:
        print('less than')
        x1 = x.iloc[j:]
        break
    i -= -1
    j += 1
else:
    pass
    # here you can write what happens if condition is not met

Вот пример:

import pandas as pd

i, j = -1, -5

x = pd.DataFrame({'a': range(0, 20, 2),
                  'b': [16]*10})

for _ in range(1, 6):
    print abs(x["b"].values[i] - x["a"].values[j])
    if abs(x["b"].values[i] - x["a"].values[j]) <= 2:
        print('less than')
        x1 = x.iloc[j:]
        break
    i -= -1
    j += 1
else:
    pass

x1
#    a   b
#7  14  16
#8  16  16
#9  18  16
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...