【问题标题】:Convert float64 column to int64 column将 float64 列转换为 int64 列
【发布时间】:2018-08-21 21:27:35
【问题描述】:

我有一个 csv,其中有一列包含一个长“ID”字符串,例如 9075841942209708806(int64)。现在,当我将这个 csv 文件读入 pandas 数据框时,这个数字变成了 -9.191700e+18(float64)。

-9.191700e+18(float64)的id如何转换成原来的形式,即9075841942209708806(int64)?

【问题讨论】:

  • df = pd.read_csv(file, dtype={'ID':np.int64})
  • 哦,我很抱歉造成混乱,但是如果 id 列没有标记,因此只有第 1 列,那将如何更改代码?我试过 df = pd.read_csv(file, dtype={'1':np.int64}) 但它没有用...你能帮忙吗?
  • df = pd.read_csv(file, dtype={1:np.int64}, header=None) 呢?
  • 它有点工作。所以,现在的问题是 int 值不再与原始值匹配。例如:原始的一个是 9075841942209708806,转换后的一个是 9075800000000000000...这是什么原因造成的?
  • 嗯,可以使用字符串吗?喜欢df = pd.read_csv(file, dtype={1:'str'}, header=None)

标签: python-3.x pandas


【解决方案1】:

要更改您需要使用的列的 dtype:

 df['ID'] = df['ID'].astype('int64')

这里的文档: LINK

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 2020-02-17
    • 2016-01-29
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多