0

我正在尝试将 .txt 文件中的一些数据收集到我的 python 脚本中。问题是在收集数据时,它无法在其中一列中收集数据,这给了我比平时更多的逗号。它看起来像这样:0,0,,-2235 1,100,,-2209 2,200,,-2209

我想要的只是加载数据并删除逗号,但是当我尝试使用 numpy.loadtxt 时,它给了我一个值错误。我该怎么办?

4

3 回答 3

1

这真的取决于你想要做什么。我需要看一个代码示例才能看到你真正想要做什么。你可以用一个逗号替换双逗号

inputstr = "0,0,,-2235 1,100,,-2209 2,200,,-2209"
inputstr = inputstr.replace(",,",",")

或者,如果您不想丢失数据在字符串中的位置,可以将双逗号替换为空值排序

inputstr = "0,0,,-2235 1,100,,-2209 2,200,,-2209"
inputstr = inputstr.replace(",,",",0,")

关键是您不想破坏数据,并引入不应该存在的值。这实际上是关于数据的含义以及您正在尝试做的事情。

于 2015-01-15T10:56:31.680 回答
0

您可以使用正则表达式模块进行拆分

In[1]: import re
In[2]: re.split(',,|,', '0,0,,-2235 1,100,,-2209 2,200,,-2209')
Out[2]: ['0', '0', '-2235 1', '100', '-2209 2', '200', '-2209']

',,|,'意味着它首先在 处分裂,,,然后在结果中,它继续在 处分裂,

所以如果你想得到-22351不是-2235 1你可以使用',,|,| '',,|,|\s'缓解眼睛(\s手段space)。

于 2015-01-15T10:51:53.477 回答
0

我不知道这是否是一个选项,但您可以使用tr -s ',' file.txt. 这是一个 shell 命令,因此您必须在调用 python 或使用system. 后者可能不是最好的方法,因为 Dragon2fly 使用 python 函数解决了这个问题。

于 2015-01-15T10:53:58.230 回答