У меня есть большое число с десятичными знаками, которое я хочу преобразовать в int
, но я продолжаю получать -2147483648
Пожалуйста, попробуйте:
import pandas as pd
a = pd.DataFrame(columns=['a'])
a.loc[0] = 31062000999100.0000000
Теперь a.dtypes
даетмне float
a = a.astype(str)
дает мне объект 31062000999100.0
И a = a.astype('int')
дает мне -2147483648
.Использование astype(int)
дает тот же результат.
Я знаю, что объекты с плавающей запятой - это приближения, поэтому я также попытался round(a)
, но результаты остались -2147483648
.a = a.astype('int').astype('str')
также не работал.
ps Это работает в Python 3.6.4 |Anaconda custom (64-bit)| (default, Jan 16 2018, 10:22:32) [MSC v.1900 64 bit (AMD64)]
и pandas 0.22.0
Это означает, что Microsoft 10 x64
ps2 Это было доказано, что это зависит от платформы (Windows), непроисходит на Linux Ubuntu, ни Mint.@Roberto.Также проблема в. Pyandroid ...