【问题标题】:How to call in specific columns from .CSV如何从 .CSV 调用特定列
【发布时间】:2019-07-16 23:16:46
【问题描述】:

我正在调用一个 .csv 文件,其中包含文本和数值的组合,这些值都按如下所示的值排序:

当我尝试调用数据时,python 给了我错误ValueError: could not convert string to float: '7/24/15 0:10'

有没有办法可以在这个 csv 中调用并省略特定的列?因此,由于我收到第 1 列(日期)的错误,我可以调用数据但省略第 1、6 列(工作日)、7(date_UTC)吗?同样,我怎样才能省略任何其他可能具有在浮点数组中不起作用的值的列?

到目前为止,这是我的代码:

SummerCLfile = 'user/summer_clusters.csv'
Summer_CLdata = list( csv.reader( open( SummerCLfile ) ) )
Summer_CLheaders = np.array( Summer_CLdata[ 0 ] [ : ], dtype = 'str' )
Summer_CLalldata = np.array( Summer_CLdata[ 1: ], dtype = 'float32' )

然后按类型调用这些数据(即调用“X”,它会在给定时间为我提供 X 的所有值)。

我总是可以进入数据并删除我不想要的列,但是如果我可以调用无法转换为 float32 的数据,我以后的生活会轻松很多

【问题讨论】:

  • 请以文本格式发布您的数据,以帮助重现问题。
  • numpy csv 阅读器loadtxtgenfromtxt 让您指定usecols

标签: python csv numpy numpy-ndarray


【解决方案1】:

如果您要将每一列分配给一个列表,您可以随时调用特定列或列中的特定项目。您也可以忽略不需要的任何内容。

with open('my_file.csv', 'r') as f:
    global date, year, month, day, weekday, date_UTC, timewave, x, y 
    date, year, month, day, weekday, date_UTC, timewave, x, y = zip(*(row for row in csv.reader(f)))`

【讨论】:

  • 绝对可以。我唯一担心的是我的数据集中有 170 列具有唯一名称,因此与仅物理删除特定列相比,这可能需要更多时间。
  • @danrod13 您可能会使用数组来创建列表,但是您不会有特定的名称。就看好不好了……
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-05
  • 2018-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多