pythonxml解析器将数字作为字符串加载

2024-03-29 12:41:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含大约15000个值的xml文件。我用

import xml.etree.ElementTree as ET

我如何提取值的一个例子是

def get_year1_quantity(element): return element[5][0].text 我得到了所有的数据,将不同的值放入列表中,然后将它们放入pandas数据帧中。在

我试图通过以下方式筛选数据:

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

在我查看csv文件中的数据之前,一切进展顺利。只有少数值作为字符串加载。它们以浮点或int形式进入excel,具体取决于值。我试过了

Year1_Q=[map(int, x) for x in Year1_Q] Year1_P=[map(float, x) for x in Year1_P] Year2_Q=[map(int, x) for x in Year2_Q] Year2_P=[map(float, x) for x in Year2_P]

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

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

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

以前有人遇到过这种问题吗?在

我尝试了this[columns]=this[columns].astype(float),但float()的文本无效:6625.00


Tags: columns文件数据字符串inmapfor数字
1条回答
网友
1楼 · 发布于 2024-03-29 12:41:34

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

你可以用

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

使有问题的值可见。在

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

相关问题 更多 >