将float列转换为int得到2147483648(平台特定错误)

2024-03-27 20:12:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带小数的大数,我想转换成int,但我一直得到-2147483648

请尝试:

import pandas as pd

a = pd.DataFrame(columns=['a'])
a.loc[0] = 31062000999100.0000000

现在a.dtypes给我一个float

a = a.astype(str)给我一个对象31062000999100.0a = a.astype('int')给了我-2147483648。使用astype(int)会产生相同的结果。你知道吗

我知道float对象是近似值,所以我也尝试了round(a),但是结果一直是-2147483648a = a.astype('int').astype('str')也不起作用。你知道吗

另外,它在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

p.s.2这已经被证明是特定于平台的(Windows),在Linux、Ubuntu和Mint上都没有发生。@罗伯托。这也是个问题。皮安卓。。。你知道吗


Tags: columns对象importdataframepandasasbitfloat