我正在尝试将 .txt 文件中的一些数据收集到我的 python 脚本中。问题是在收集数据时,它无法在其中一列中收集数据,这给了我比平时更多的逗号。它看起来像这样:0,0,,-2235 1,100,,-2209 2,200,,-2209
我想要的只是加载数据并删除逗号,但是当我尝试使用 numpy.loadtxt 时,它给了我一个值错误。我该怎么办?
我正在尝试将 .txt 文件中的一些数据收集到我的 python 脚本中。问题是在收集数据时,它无法在其中一列中收集数据,这给了我比平时更多的逗号。它看起来像这样:0,0,,-2235 1,100,,-2209 2,200,,-2209
我想要的只是加载数据并删除逗号,但是当我尝试使用 numpy.loadtxt 时,它给了我一个值错误。我该怎么办?
这真的取决于你想要做什么。我需要看一个代码示例才能看到你真正想要做什么。你可以用一个逗号替换双逗号
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,")
关键是您不想破坏数据,并引入不应该存在的值。这实际上是关于数据的含义以及您正在尝试做的事情。
您可以使用正则表达式模块进行拆分
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']
',,|,'
意味着它首先在 处分裂,,,
然后在结果中,它继续在 处分裂,
。
所以如果你想得到-2235
而1
不是-2235 1
你可以使用',,|,| '
或',,|,|\s'
缓解眼睛(\s
手段space
)。
我不知道这是否是一个选项,但您可以使用tr -s ',' file.txt
. 这是一个 shell 命令,因此您必须在调用 python 或使用system
. 后者可能不是最好的方法,因为 Dragon2fly 使用 python 函数解决了这个问题。