代码之家  ›  专栏  ›  技术社区  ›  B Furtado

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

  •  1
  • B Furtado  · 技术社区  · 8 年前

    我有一个带小数的大数字,我想转换成 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')

    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 这意味着微软10 x64

    0 回复  |  直到 8 年前