使用 pandas 从 Excel 中读取大量数据

Utp*_*utt 6 python xlsx pandas

例如,我正在读取带有 pandas 的 xlsx 文件,并且一列包含 18 位数字360000036011012000

读取后数字转换为360000036011011968

我的代码

import pandas as pd
df = pd.read_excel("Book1.xlsx")
Run Code Online (Sandbox Code Playgroud)

我也尝试将列转换为字符串,但结果是相同的

df = pd.read_excel("Book1.xlsx",dtype = {"column_name":"str" })
Run Code Online (Sandbox Code Playgroud)

还尝试过engine = 'openpyxl'

另外,如果 csv 文件中有相同的数字,则读取工作正常没有问题,但我必须仅从 Excel 读取它。

And*_*eas 1

这是 Excel 问题,而不是 pandas 问题。看这里:

在此输入图像描述

黄色标记的条目实际上是 * 10 +1 以下的数字,因此不应以 0 结尾。 在此输入图像描述

Excel 中发生的情况似乎是数字限制为 18。但最后两个数字被解释为小数。由于这是 Excel 问题而不是 CSV 问题,因此 csv 就可以正常工作。

解决方案:

将 Excel 中的数字格式化为文本,如第一张图片所示:=Text(CELL,0)。然后 Pandas 可以将其作为字符串导入,但您将丢失最后一位数字的信息。因此,Excel 不应用于超过 18 位数字的数字。使用不同的文件,例如 csv,通过使用前导:' 符号将数字作为字符串直接插入到 Excel 中。