pandas从csv中读取错误的大整数解析

时间:2017-09-29 13:08:14

标签: python pandas csv

您好我有问题。 我从csv读取一个文件各种列,其中一列是19位整数ID。问题是,如果我只是在没有选项的情况下读取它,则数字被读为float。在这种情况下,它似乎是混合数字: 例如,数据集具有100k的唯一ID值,但是这样的读数给出了10k个唯一值。我更改了read_csv选项以将其作为字符串读取,并且在将其作为数学符号读取时问题仍然存在(例如:* e ^ 18)。

pd.set_option('display.float_format', lambda x: '%.0f' % x)
df=pd.read_csv(file)

1 个答案:

答案 0 :(得分:0)

问,当您通过pd.read_csv从.scv中读取BigInteger值时,确实会发生这种情况。例如:

M | Y | title | term | count
4 | 2009 | titlea, titlec | terma | 3
4 | 2009 | titlea, titlec | termc | 2
6 | 2001 | titleb | termb | 1

阅读以下条件为True:

df = pd.read_csv('/home/user/data.csv', dtype=dict(col_a=str, col_b=np.int64))
# where both col_a and col_b contain same value: 107870610895524558

因此,我建议在读取大整数的情况下,可以将它们读取为字符串,然后将列类型转换为int