gpt4 book ai didi

python - Pandas 从 csv 中读取错误地解析大整数

转载 作者:行者123 更新时间:2023-12-04 17:49:10 25 4
gpt4 key购买 nike

您好,我有一个问题。我从 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)

最佳答案

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

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

阅读后以下条件为真:

df.col_a == '107870610895524558'
df.col_a.astype(int) == 107870610895524558
# BUT
df.col_b == 107870610895524560

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

关于python - Pandas 从 csv 中读取错误地解析大整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46489505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com