Допустим, у меня есть большое число в строке, например '555555555555555555555'
.Можно преобразовать его в тип int, float или даже numpy:
int('555555555555555555555')
float('555555555555555555555')
np.float('555555555555555555555')
Однако, когда я использую функцию панд pd.to_numeric
, все идет не так:
pd.to_numeric('555555555555555555555')
С ошибкой:
Traceback (most recent call last):
File "pandas/_libs/src/inference.pyx", line 1173, in pandas._libs.lib.maybe_convert_numeric
ValueError: Integer out of range.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\path_to_conda\lib\site-packages\IPython\core\interactiveshell.py", line 3267, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-34-6a735441ab7b>", line 1, in <module>
pd.to_numeric('555555555555555555555')
File "C:\path_to_conda\lib\site-packages\pandas\core\tools\numeric.py", line 133, in to_numeric
coerce_numeric=coerce_numeric)
File "pandas/_libs/src/inference.pyx", line 1185, in pandas._libs.lib.maybe_convert_numeric
ValueError: Integer out of range. at position 0
Что не так?Почему панды to_numeric
не могут обрабатывать большие значения?Есть ли случаи использования, по которым вы бы использовали pd.to_numeric
вместо таких функций, как np.float
?