python - numpy.genfromtxt 错误地解析带有转义字符的列名

标签 python string csv escaping genfromtxt

我正在使用以下代码从 CSV 文件中读取大量数据

data = np.genfromtxt(inputfile.name, delimiter=',', dtype=float, names=True)

根据文档字符串,使用具有 True 值的 names 关键字意味着数据结构为一维结构化数组,其中原始 CSV 文件的列可通过其名称访问,取自文件的第一行.

虽然这通常有效,但名称字符串似乎没有像我期望的那样被解析为原始字符串。 r'一些字符串'

例如文件中的字符串

s = "LNAGain(Corner=nom_8;modelFiles=model.paths.scs;cur_ctl_counter=1;vsupply=1.65;temperature=85) Y"
#correct

被解析为

s="LNAGain_Cornernom_8modelFilesmodelpathsscscur_ctl_counter1vsupply165temperature85_Y"
#wrong

所以它漏掉了等号、分号和括号。 有没有办法强制读取原始字符串?或者这是 numpy 方法中的错误?

如果我只是阅读带有

的行
inputfile.readline() 

一切都被正确解析/如我所愿。

提前致谢!

最佳答案

我通过使用 pandas 模块而不是 numpy 进行 csv 导入来解决我的问题。参见 http://pandas.pydata.org

它似乎以更智能的方式解析包含数据的文本文件。

所以,而不是做

import numpy as np
data = np.genfromtxt(inputfile.name, delimiter=',', dtype=float, names=True)

我愿意

import pandas as pd
data = pd.read_csv(inputfile.name, sep=',')

一切都很好。 :)

当然,我不得不编辑我的代码以使用 pandas 方法来处理数据对象,但更改很小。

例如访问我将使用的数据列

data[data.columns[column_index]]

代替

data[data.dtype.names[column_index]

关于python - numpy.genfromtxt 错误地解析带有转义字符的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27941754/

相关文章:

PHP:如何解析多层次对象的动态属性

java - ByteArrayOutputStream 到字符串数组

csv - 为机器学习提供数据的替代方法(使用 CSV 文件除外)

python - 更改特定数据框列的数据类型 - Pandas

python - 将列数据值的计数累积为单独的列

python - 全局变量的实现与取消引用的变量

python - 如何让函数在 Python 中作为子进程运行?

python - 数据帧的减法和赋值返回 NA

用于自动绑定(bind) __init__ 参数的 Python 装饰器

php - 如何使用字符串从嵌套数组中获取值