Найдите значение из строки, выше и ниже, используя операторы If в PythonPython

Программы на Python
Ответить
Anonymous
 Найдите значение из строки, выше и ниже, используя операторы If в Python

Сообщение Anonymous »

Код: Выделить всё

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])
Я новичок в Python. Извините за беспорядок. Я пытаюсь найти a,b,c,d, чтобы найти в строке 1,2,3,4 из данных, и как только они совпадают с данными, тогда, если значение_1 находится в строке n, а значение_2 находится в строке n или n-1 или n+1 if (df.loc[n].isin([value_2 ]).any() или df.loc[n-1].isin([value_2 ]).any() или df.loc[n+1].isin([value_2 ]).any()): затем покажите данные. и затем снова то же самое: один внизу и один вверху. Код выполняется, но находит не все совпадающие данные, а лишь некоторые. Совершил ли я какую-либо ошибку при использовании оператора или?
Например, сначала он найдет значение 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»