Я работаю над фреймворком данных. Я строю график зависимости температуры от времени. Обычно моя температура будет в пределах 20 и 25, редко она выходит за эти пределы. Я хочу построить график таким образом, чтобы при температуре от 20 до 25 предел моей оси Y был в пределах от 20 до 25 или между 0 и 50.
Мой текущий код выглядит так
listofDF = [df_i for (_, df_i) in df.groupby(pd.Grouper(key = "filename", freq = "1D"))] #for dividing daraframe on basis of one day
for df in ((listofDF)):
if len(df)!= 0:
y = df[' Temp']
x = df['time']
plot(x,y)
plt.ylim(20,30)
я хочу что-то вроде этого
listofDF = [df_i for (_, df_i) in df.groupby(pd.Grouper(key = "filename", freq = "1D"))] #for dividing daraframe on basis of one day
for df in ((listofDF)):
if len(df)!= 0:
y = df[' Temp']
x = df['time']
plot(x,y)
if y.between(20,25):
plt.ylim(20,25)
else:
plt.ylim(0,50)
Я попробовал этот код и получил ошибку: «Истинное значение серии неоднозначно. Используйте a.empty, a.bool(), a.item(), a.any() или a.all()». . Кто-нибудь может мне помочь, пожалуйста
Он выдает эту ошибку, потому что y.between
возвращает массив с логическими значениями, включая True, если значение находится между вашими границами. Вы используете оператор if для проверки всего возвращаемого массива, что невозможно напрямую. Вместо этого вы можете использовать all
, чтобы проверить, являются ли ВСЕ значения в этом массиве истинными или нет:
if all(y.between(20,25)):
plt.ylim(20, 25)