Проверочное значение в столбце является типом списка ⇐ Python
-
Anonymous
Проверочное значение в столбце является типом списка
У меня есть кадр данных с двумя столбцами: field и value. Я выполняю некоторые проверки значения каждого поля. Для поля a мне нужно проверить, что соответствующее значение всегда имеет тип list и сохранить его результат в столбце status
Ниже приведен код:
импортировать панд как pd из pandas.api.types импорт is_list_like данные = { "поле": ["а", "б", "в"], "значение": [[1, "на", -99], 20, 80], } df = pd.DataFrame(данные) print("Начальный DF") печать(f"{df=}") condlist = [df["поле"] == "a", df["поле"] == "b", df["поле"] == "c"] список выбора = [ df["значение"].apply(is_list_like).any(), df["значение".isin([10, 20, 30, 40]), df["значение"].между(50, 100), ] df["status"] = np.select(condlist, choicelist, False) print("После проверки DF") печать(f"{df=}") Но получаю ошибку
df["значение"].between(50, 100), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл «pandas/_libs/ops.pyx», строка 107, в pandas._libs.ops.scalar_compare Ошибка типа: '>=' не поддерживается между экземплярами 'list' и 'int' Чего мне не хватает?
У меня есть кадр данных с двумя столбцами: field и value. Я выполняю некоторые проверки значения каждого поля. Для поля a мне нужно проверить, что соответствующее значение всегда имеет тип list и сохранить его результат в столбце status
Ниже приведен код:
импортировать панд как pd из pandas.api.types импорт is_list_like данные = { "поле": ["а", "б", "в"], "значение": [[1, "на", -99], 20, 80], } df = pd.DataFrame(данные) print("Начальный DF") печать(f"{df=}") condlist = [df["поле"] == "a", df["поле"] == "b", df["поле"] == "c"] список выбора = [ df["значение"].apply(is_list_like).any(), df["значение".isin([10, 20, 30, 40]), df["значение"].между(50, 100), ] df["status"] = np.select(condlist, choicelist, False) print("После проверки DF") печать(f"{df=}") Но получаю ошибку
df["значение"].between(50, 100), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл «pandas/_libs/ops.pyx», строка 107, в pandas._libs.ops.scalar_compare Ошибка типа: '>=' не поддерживается между экземплярами 'list' и 'int' Чего мне не хватает?
Мобильная версия