【问题标题】:Creating Arrays from cvs files in python在 python 中从 csv 文件创建数组
【发布时间】:2015-04-13 14:40:10
【问题描述】:

所以我有一个数据文件,我必须从中提取特定数据。使用;

x=15 #need a way for code to assess how many lines to skip from given data
maxcol=2000 #need a way to find final row in data
data=numpy.genfromtxt('data.dat.csv',skip_header=x,delimiter=',')
column_one=data[0;max,0]
column_two=data[0:max,1]

这为我提供了一个特定情况的数组,其中所需数据上方有 (x=)15 行元数据,并且数据行数为 (maxcol=)2000。我该如何更改代码以满足 x 和 maxcol 的任何值?

【问题讨论】:

    标签: python arrays csv


    【解决方案1】:

    使用pandas。它的read_csv 函数可以满足您的所有需求(我不包括其等效的delimitersep=',',因为逗号分隔是默认值):

    import pandas as pd
    data = pd.read_csv('data.dat.csv', skiprows=x, nrows=maxcol)
    

    如果你真的想要一个 numpy 数组,你可以这样做:

    data = data.values
    

    但你可以将其保留为 pandas DataFrame

    【讨论】:

    • 谢谢,panda 模块到底是做什么的。 read_csv 函数如何区分行?我不想使用可能会绊倒我的不熟悉的功能。还有长手的方式是什么?即不使用额外的模块为我做这项工作?
    • Pandas 是一个专为处理结构化数据(如csv 文件)而设计的软件包。它以与genfromtxt 相同的方式区分行,使用换行符(默认情况下,尽管您可以指定这一点)。它真的是为以可靠和健壮的方式处理csv 文件而设计的。与genfromtxt 相比,您遇到问题和极端情况的可能性要小得多。
    • 它似乎可以为我完成所有繁重的工作,但我的目标是不使用外部包,所以现在看来​​我被 genfromtxt 困住了。您建议从 genfromtxt 获取最灵活的代码的方向是什么?
    猜你喜欢
    • 1970-01-01
    • 2016-09-26
    • 2021-08-30
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    相关资源
    最近更新 更多