Вы можете замаскировать фрейм данных pandas с помощью логического выражения и проверить несколько вещей, чтобы оценить связь между A, B, C, D и E. Однако мой пример основан на случайном числе.Но это должно дать вам направление.
import pandas as pd
import numpy as np
data = np.random.randint(0,10,(5,5))
df = pd.DataFrame(data, columns=["A", "B", "C", "D", "E"])
# filtering data on index value
mask = (df.D < df.E) & (df.A < df.B) & (df.B > df.C)
print(df)
# A B C D E
# 0 1 7 7 9 0
# 1 4 9 3 0 3
# 2 3 4 1 1 6
# 3 2 1 4 3 5
# 4 8 8 2 3 6
print(mask)
# 0 False
# 1 True
# 2 True
# 3 False
# 4 False
# dtype: bool
print(df[mask])
# A B C D E
# 1 4 9 3 0 3
# 2 3 4 1 1 6
print(len(df[mask].index))
# 2
print(mask.all())
# False
Дополнительное внимание на этой строке:
mask = (df.D < df.E) & (df.A < df.B) & (df.B > df.C)
, где (df.D < df.E)
- это соотношение между D
и E
и (df.A < df.B) & (df.B > df.C)
это отношение между A
, B
и C
.Если оба значения оцениваются как True
, отношения "совпадают" и конечный результат будет True
.