Как получить преобразование с помощью & quot; OverflowError: Python int слишком велик для преобразования в C long & quot; ошибка работы на Windows Server 2012?

При запуске этого на Anaconda Python 2.7.12, Pandas 18.1, Windows Server 2012:

df['z'] = df['y'].str.replace(' ', '').astype(int)

Я получаю эту ошибку:

OverflowError: Python int too large to convert to C long

Я не получаю эту ошибку на MacOS 10.11 или Ubuntu 14.04. Я читал откуда-то еще, что компилятор Windows C ++ имеет другое определение long, чем Unix-подобная ОС. Если так, как я могу заставить это работать на Windows?

Кроме того, размер data.txt составляет всего 172 КБ. Если это помогает, data.txt принимает эту форму:

x|y
99999917|099999927 9991
99999911|999999979 9994
99999912|999999902 9992

2

Решение

int интерпретируется NumPy как np.int_ dtype, который соответствует целому числу C. В Windows, даже в 64-битной системе, это 32-битное целое число.

Поэтому, если вам нужно привести большие значения, укажите 64-битное целое число, используя

.astype('int64')
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]