Код: Выделить всё
import pandas as pd
import numpy as np
df= pd.read_csv ("file.csv")
n = 0
a = 7 # 1st value to find in row1
b = 39 # 2nd value to find in row2
c = 10 # 3rd value to find in row3
d = 38 # 4th value to find in row4
value_1 = 5
value_2 = 21
while n < len(df)-1 :
if df.loc[n].isin([a]).any # 7 is in any in n row
if df.loc[n+1].isin([b]).any(): #39 is in any in n+1 row
if df.loc[n+2].isin([c]).any(): #10 is in any in n+2 row
if df.loc[n+3].isin([d]).any(): #44 is in any in n+3 row
if df.loc[n].isin([value_1]).any():
if (df.loc[n].isin([value_2 ]).any() or df.loc[n-1].isin([value_2 ]).any() or df.loc[n+1].isin([value_2 ]).any()):
display (df.loc[n:n])
elif df.loc[n+1].isin([value_1]).any() :
if (df.loc[n+1].isin([value_2 ]).any() or df.loc[n].isin([value_2 ]).any() or df.loc[n+1].isin([value_2 ]).any()):
display (df.loc[n:n])
elif df.loc[n-1].isin([value_1]).any() :
if (df.loc[n-1].isin([value_2 ]).any() or df.loc[n-2].isin([value_2 ]).any() or df.loc[n].isin([value_2 ]).any()):
display (df.loc[n:n])
Например, сначала он найдет значение a(7) в любой строке (здесь найдено в строке 4), как только будет найдено, затем еще в следующей строке, чтобы найти b (39 найдено в строке 5), а затем c(10 найдено в строке 6) и d(38 найдено в строке 7).
Как только оно найдено, он будет искать значение_1 (5) в строке a(7, который был найден в строке 4) или один выше (строка 3) или ниже (строка 5)
A B C D E F
1 | 4 5 8 16 5 44 #VALUE_1 (5)
2 | 1 4 12 15 22 21 #VALUE_2 (21)
3 | 2 11 13 15 28 33
4 | 5 15 29 35 7 33
5 | 6 7 39 12 14 16
6 | 1 9 10 12 20 26
7 | 6 38 20 36 33 34
8 | 12 21 7 28 35 39
9 | 5 18 39 33 35 36
10| 4 7 10 18 19 28
11| 3 4 15 19 28 38
и позже, когда будет найдено значение_1 (5), он ищет значение_2 (21) в строке значения_1 (которое было найдено в строке 4), выше (строка 3) или ниже (строка 5). если он найден, он напечатает строку 1 и продолжит поиск новых совпадений
Подробнее здесь: https://stackoverflow.com/questions/794 ... -in-python
Мобильная версия