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的差异,然后打印条件找不到**
如果有人有个好主意,请在这里分享。
答案 0 :(得分:0)
这应该是它:
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