При запуске этого на 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
int
интерпретируется NumPy как np.int_
dtype, который соответствует целому числу C. В Windows, даже в 64-битной системе, это 32-битное целое число.
Поэтому, если вам нужно привести большие значения, укажите 64-битное целое число, используя
.astype('int64')
Других решений пока нет …