gpt4 book ai didi

Python XML 解析器将数字加载为字符串

转载 作者:太空宇宙 更新时间:2023-11-03 17:06:12 24 4
gpt4 key购买 nike

我有一个 xml 文件,其中包含大约 15000 个值。我使用

阅读它

导入 xml.etree.ElementTree 作为 ET

我如何提取值的示例是

def get_year1_quantity(元素):
返回元素[5][0].text
我获取了所有数据并将不同的值放入列表中,然后将它们放入 pandas 数据框中。

我尝试通过以下方式过滤数据:

filtered=this[this.Year1_Q > this.Year2_Q]

一切都很顺利,直到我查看了 csv 文件中的数据。只有少数值作为字符串加载。根据值,它们以 float 或整数形式进入 Excel。我试过了

Year1_Q=[Year1_Q 中 x 的映射(int, x)]
Year1_P=[Year1_P 中 x 的映射(float, x)]
Year2_Q=[Year2_Q 中 x 的映射(int, x)]
Year2_P=[Year2_P 中 x 的映射(float, x)]

但它给了我一个错误,Year1_Q=[map(int, x) for x in Year1_Q]

ValueError:无法将字符串转换为 int:

有些数字作为数字加载,而另一些数字作为字符串加载,这对我来说没有意义。它们在 xml 文件中是相同的。

有人遇到过这个问题吗?

我尝试了 this[columns]=this[columns].astype(float) 并得到了 float() 的无效文字:6,625.00

最佳答案

XML 是一个文本文件,只有您知道它应该被解释为字符串还是数字。当您需要将其作为 Python 中的数字时,您必须显式转换它(就像处理 map 一样)。 CSV 也是一种文本格式。

你可以使用

try:
Year1_Q=[map(int, x) for x in Year1_Q]
except ValueError:
print(repr(Year1_Q))

使有问题的值可见。

CSV 不是 native Excel 格式。 Excel 可能是该受到指责的工具。当您双击 CSV 文件或启动 Excel 并通过菜单打开 CSV 文件时,结果可能会有所不同(至少对于某些旧版本的 Excel 来说这是真实的观察结果)。

关于Python XML 解析器将数字加载为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34572576/

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