【问题标题】:Python: Reading CSV file and plotting a scatterPython:读取 CSV 文件并绘制散点图
【发布时间】:2012-03-17 10:10:49
【问题描述】:

我编写了一个脚本来计算尺寸为 27000 行 x 22 列的大型 csv 文件。 如何读取 CSV 文件,以便在 matplotlib 中使用它,就像这个线程中的那样?

axis range in scatter graphs

了解生成散点图的概念。已尝试通过以下方式解析 csv 文件:

data=csv.reader(open('some_file.csv, 'rb'), delimiter='|', quotechar='"')

但没有成功。

【问题讨论】:

  • “但没有成功”是什么意思?您能否提供错误消息或其他错误指示​​?我们真的无法猜测。
  • 我们确实需要更多信息,但您的代码中也存在语法错误,如下所示:'somefile.csv 需要结束单引号。这只是一个错字吗?
  • @Mike:如果没有 实际 错误消息,这很可能是问题所在。要么。问题可能是数据只是一个阅读器,而不是所需的实际数据。
  • 对迟到的回复表示歉意。我犯了两个大错误:第一个 - 我选择了错误的分隔符,第二个错误是 marcus 和 dm 指出它:我没有想到数据是一个类似文件的对象......并且可能是第三个错误: 我对自己脸红的问题没有说清楚。

标签: python csv matplotlib scatter


【解决方案1】:

作为一般替代方案,您可能对 Wes McKinney 的 pandas python 包感兴趣:http://pandas.pydata.org/

它确实改变了我使用 python 进行数据分析的生活。它为 python 提供了类似于 R 的 data.frame 的数据结构,但功能更强大。它建立在 numpy 之上。

它会非常轻松地读取 csv 文件,将数据加载到可以轻松切片和操作的 DataFrame(numpy 数组子类)中。

【讨论】:

    【解决方案2】:

    这是正确的分隔符吗?你读过文档吗? http://docs.python.org/library/csv.html

    data 是一个类似文件的对象。您必须对其进行迭代才能访问数据。正如马库斯在他的例子中指出的那样,每一行都是一个列表。

    【讨论】:

      【解决方案3】:

      这是一个快速的解决方案

      def getColumn(filename, column):
          results = csv.reader(open(filename), delimiter="\t")
          return [result[column] for result in results]
      

      然后你就可以这样使用了

      time = getColumn("filename",0)
      volt = getColumn("filaname",1)
      
      plt.figure("Time/Volt")
      plt.xlabel("Time(ms)")
      plt.ylabel("Volt(mV)")
      plt.plot(time,volt)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-06-07
        • 1970-01-01
        • 1970-01-01
        • 2019-06-26
        • 1970-01-01
        • 2015-08-30
        • 2021-02-10
        相关资源
        最近更新 更多