【问题标题】:Getting wrong readings when trying to plot CSV file using pandas尝试使用 pandas 绘制 CSV 文件时出现错误读数
【发布时间】:2020-07-20 22:22:57
【问题描述】:

我的 csv 文件如下所示:

如您所见,有 7 列用逗号分隔。我花了几个小时阅读和绘制以 31364 开头的第一列,代码如下:

import matplotlib.pyplot as plt
import pandas as pd


df = pd.read_csv('test.csv', sep=',', header=None, names=['colA','colB','colC','colD','colE','colF','colG'])
y = df['colA']
plt.plot(y)

但是代码输出了这个与数据完全不匹配的图:

我将 Spyder 与 Anaconda 一起使用。可能是什么问题?

【问题讨论】:

  • 正确地说:这个 csv 有 8 列,而不是 7 列(7 列有数据,1 列为空)。

标签: python pandas csv spyder


【解决方案1】:

A 列的所有值都在 31,000 范围内吗?您没有绘制整个文件。

编辑:不知道你在寻找什么结果。在您的代码中,您的 csv 中的第一列用作数据帧的索引(在您阅读 csv 后,在 python 提示符处输入“df”,不带引号,以查看您的数据集的样子。 如果您不想将 csv 中的第一列作为索引,请在读取 csv 时将“index_col=False”(不带引号)添加到参数中。 此外,在 csv 中使用分隔符(在这种情况下为逗号)结束行并不是一个好主意。

【讨论】:

  • 我不明白你的意思。屏幕截图显示了数据的开头。您想查看全部数据吗?
  • 没有。运行 df.head() 查看数据帧的前 5 行,运行 df tail() 查看最后 5 行。 colA 中的所有内容(即您在 y 中绘制的内容)都在 31000 范围内。查看您的数据,colA 中的每个值都在 31343 和 31367 之间。绘图的比例只会将这些值显示为垂直线。
  • 你能帮我吗?我不是程序员,只需要绘制数据。
  • 我无法下载文件。受限的工作计算机。
猜你喜欢
  • 2019-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 2017-05-06
  • 1970-01-01
  • 2015-02-13
  • 2016-10-08
相关资源
最近更新 更多