Как лучше (если он есть) определить функцию, которая проверяет, находится ли столбец панд в заданном диапазоне целых чисел?
У меня есть столбец в кадре данных Pandas, который я хотел проверить, находятся ли значения между заданным диапазоном. Я решил сделать это, создав функцию, которая принимает фрейм данных в качестве аргумента и проверяет, находится ли столбец в диапазоне, используя IF и ELIF.
Это может быть хорошо, когда диапазон мал, однако, если диапазон большой, результирующая функция IF, ELIF может быть сложной для поддержания. Есть ли лучший способ добиться этого?
Мой код, который работает-
def fn(dframe):
if dframe['A'] < 125:
return 935 + 0.2 * dframe['A']
elif (dframe['A'] >= 955) and (dframe['A'] <= 974):
return 921.2 + 0.2 * (dframe['A'] - 955)
elif (dframe['A'] >= 975) and (dframe['A'] <= 1023):
return 925.2 + 0.2 * (dframe['BCCH'] - 975)
elif (dframe['A'] >= 511) and (dframe['A'] <= 885):
return 1805.2 + 0.2 * (dframe['A'] - 512)
Этот код работает должным образом, однако, если диапазон большой, результирующей функцией трудно управлять.
EDIT:
Спасибо @ycx, @Jorge и всем - мне нравится удобочитаемость вашего кода. Однако мне было интересно, как подход @ ycx. Если у меня есть значения Min и Max 'condlist' в файле csv - например,
condlist_from_CSV_file
тогда я могу прочитать это в информационном кадре. Теперь я хотел бы проверить, находится ли каждая строка столбца «A» в другом кадре данных между этими пределами, и если true, вернуть соответствующий «Выбор», в противном случае вернуть «Нет», имеет ли это смысл?
Желаемый вывод -
вывод данных с проверкой
и т. Д.