Я пытаюсь это сделать в python 3.5.2 и pandas 0.18.1
Ниже приведены мои примеры данных
%busy %queue
1 50 3.0
2 80 2.0
3 90 3.0
4 90 3.0
5 90 3.0
6 30 1.1
7 45 1.3
8 55 1.5
9 65 1.7
Ниже приведен мой код
import pandas as pd
df = pd.read_csv('cpu.csv')
total_row = df.shape[0]
for i in range(0, total_row):
if df['busy'].iloc[i:i+3] >90 & df['queue'].iloc[i:i+3] => 3:
print("High usage observed")
break
else:
continue
Выходные данные должны быть:
условие if должно оценивать True или False, если оно истинно, print («Наблюдается большое использование»)
Примечание. Цикл IF становится TRUE только во время значенияi = 2, от i = 2 до i = 4,% занятости больше 90 и% очереди равно 3, поэтому условие должно удовлетворяться, и оператор print выполняется
Я ожидаю, чтооператор df ['busy']. iloc [i: i + 3]> 90, должен давать либо True, либо False. Аналогично, второй оператор df ['queue']. iloc [i: i + 3]> 3, должен быть Trueили False
наконец, цикл if должен быть похож на True & True, чем необходимо выполнить оператор внутри циклов
Но в настоящее время я получаю ошибку, как показано ниже. ValueError: Истинное значение Series являетсянеоднозначный.Используйте a.empty, a.bool (), a.item (), a.any () или a.all ().