我有一个有7行的csv文件,其中5行有7列,最后两行有2列。这些文件也是字符串、浮点和nan的混合。 e、 g组:
883825.00,373395.00,0.00,"20,080.84",2012500.00,#EANF#,121449.39
0.00,0.00,0.00,"38,849.10",0.00,#EANF#,0.00
0.00,0.00,0.00,"83,167.42",1640625.00,#EANF#,0.00
#EANF#,#EANF#,#EANF#,#EANF#,#EANF#,#EANF#,#EANF#
"-1,202,600.00",-0.00,#EANF#,2267168,0.00,#EANF#,"-173,710.66"
-125.60,#EANF#
"17,459.68",#EANF#.
我可以用MATLAB来阅读这个文件并进行处理。我能对纽比做同样的事吗? 我试着在这个论坛上寻找解决方案,但似乎没有任何效果。需要将字符串和nan转换为float。在
我不确定是否有使用NumPy的解决方案,}如果列数发生变化,则会分别引发错误和警告,因此您可能需要编写自己的方法。在
loadtxt
和{编辑:以下内容稍作编辑,以参考DSM的意见。
您可以使用内置的
csv
模块:csv方法的优点是它可以去除新行,如果您只使用
fileobj = open(...)
和for line in fileobj
读取文件,则不是这种情况。在在这一点上你应该
^{pr2}$然后您必须转换为float并将
#EANF#
值替换为numpy.NaN
。我们还要处理一些值中的逗号。逗号很容易处理对于
#EANF#
值,我们可以检查一个项是否以this开头(不等于this,因为列表中的最后一个项有一个尾随的.
)。将这两个转换组合成一个函数convert
,并用列表理解进行包装:函数
convert
可以泛化为接受第二个可选参数,该参数定义应将哪些值映射到numpy.NaN
。在最终的结果是
注意:这个答案假设你对结果的一维列表满意。如果你想得到一个不同的结果,你应该在问题中说出来。在
相关问题 更多 >
编程相关推荐