【问题标题】:Error in matplotlib csv2rec functionmatplotlib csv2rec 函数中的错误
【发布时间】:2015-12-17 22:44:11
【问题描述】:

我正在使用 csv2rec 读取 csv 文件。该 csv 文件中的许多字段都被命名为“MS1-API2_C”。当 csv2rec 读取此字段时,此字段名称正在转换为“ms1api2_c”。现在我无法使用转换后的字段名称或原始字段名称访问此列元素。请提出解决方案。

【问题讨论】:

    标签: python csv numpy matplotlib ipython


    【解决方案1】:

    csv2rec 旨在自动将标题小写,但您可以使用以下方法绕过此功能:

    import matplotlib.mlab
    import csv
    
    filename = 'input.csv'
    
    with open(filename, 'r') as f_input:
        headers = next(csv.reader(f_input))
    
    data = matplotlib.mlab.csv2rec(filename, names=headers)
    

    引用 Matplotlib documentation:

    标题将小写,空格将转换为 删除了下划线和非法属性名称字符。

    【讨论】:

    • 我尝试了这个建议,但它显示了第 401 行,在 new self = ndarray.__new__(subtype, shape, (record, descr), order=order) Showing MemoryError
    • 您需要确保所有标题都有合适的名称。尝试简化它们以进行测试,以查看问题是否消失。我还建议你print headers 看看它们是否被正确读入。
    • 打印头工作正常。我做了测试,它工作正常。但对于实际文件,它不起作用。会不会是字段名的长度?
    • 这个link 可能会有所帮助。我认为长度不是问题。
    猜你喜欢
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    相关资源
    最近更新 更多