Я не могу понять, почему то, что раньше было таким простым, больше не работает. Часто я могу сопоставить столбец dataframe со словарем, и некоторые нулевые значения отображаются, поскольку они не найдены в словарных ключах. Таким образом, результирующий столбец будет с плавающей точкой + ноль. Обычно я конвертирую .astype("Int64")
и boob, ненулевые значения теперь являются целыми числами, а не числами с плавающей запятой, при этом все остальное остается нетронутым.
Теперь я сталкиваюсь с проблемами, когда я обрабатываю свои данные, использую преобразования Int64, принятие тесты пройдены, но позже в дальнейшем в развертывании данных конвейера происходит сбой, потому что в этих столбцах находятся поплавки.
Просто чтобы убедиться, что я не сумасшедший, я открываю блокнот jupyter и инициализирую основ c dataframe, сопоставьте его со словарем, для которого некоторые значения dataframe не существуют в словарных ключах, затем преобразуйте как "Int64" ..... и я все еще решаю эту проблему !! В чем дело? Я уверен, что раньше это было так просто ....
df = pd.DataFrame({"keys": [5, 10, 15, 20]})
df["after_mapping"] = df["keys"].map({1: 0, 2: 2, 5: 25, 15: 305})
df["after_mapping"] = df["after_mapping"].astype("Int64")
ValueError: Невозможно преобразовать бесконечные значения (NA или inf) в целое число