python - 用 Pandas 从excel中读取大量数据

标签 python pandas xlsx

我正在阅读带有 Pandas 的 xlsx 文件,并且一列包含 18 位数字,例如 360000036011012000读取后数字转换为360000036011011968我的代码

import pandas as pd
df = pd.read_excel("Book1.xlsx")
我也尝试将列转换为字符串,但结果相同
df = pd.read_excel("Book1.xlsx",dtype = {"column_name":"str" })
也试过 engine = 'openpyxl'此外,如果 csv 文件中的数字相同,则读取工作正常,但我必须仅从 excel 中读取它。

最佳答案

那是 Excel 问题,而不是 Pandas 问题。看这里:
enter image description here
黄色标记的条目实际上是 * 10 +1 以下的数字,因此不应以 0 结尾。
enter image description here
在 Excel 中发生的事情似乎是数字限制为 18。但最后两个数字被解释为小数。由于这是 Excel 而不是 CSV 问题,因此 csv 可以正常工作。
解决方案:
将 Excel 中的数字格式化为文本,如第一张图所示:=Text(CELL,0)。
然后 Pandas 可以将其作为字符串导入,但您将丢失最后一位数字的信息。因此 Excel 不应用于超过 18 位的数字。使用不同的文件,如 csv,使用前导:' 符号将数字作为字符串直接插入到 excel 中。

关于python - 用 Pandas 从excel中读取大量数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67300336/

相关文章:

python - 如何使用For循环将整数作为字符串添加到列表中?

python - 如果连续行在某些列上匹配,则在 Pandas 中添加连续行

python - 将每个唯一 ID 的行转换为所有逗号分隔的可能性

r - 将数据框写入带有标题的 .xls 文件

python - 在基本程序中使用 else 得到错误 : unindent does not match any outer indentation level

python - Mac OS X 上的 VS Code : Failed to start Jupyter in the environment

Python 请求 - "To continue your browser has to accept cookies and has to have JavaScript enabled."

python - Pandas:根据内容将列表分成不同的列

java - 解析大型 xlsx 文件,日期格式案例

c# - OpenXmlReader.Skip 应该如何工作?