【问题标题】:Plotting a live graph of a CSV. (Using only certain values inside the CSV)绘制 CSV 的实时图表。 (仅使用 CSV 中的某些值)
【发布时间】:2023-03-24 09:02:02
【问题描述】:

我的问题是:我怎样才能修复这段代码,以便它绘图

DID 

Value 

我收到一条错误消息,指出“'Series Object has no attribute 'Find''”

这是我的代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

pd.read_csv('CSV_GM_NB_Test.csv').T.to_csv('GM_NB_Transpose_Test.csv' , header=False)

df = pd.read_csv('GM_NB_Transpose_Test.csv', skiprows = 2)

DID = df['SN']
Value = df['26']

x= (DID[16:21])
y= (Value[15:21])

print(x,y)


plt.plot(x,y)
plt.show()

这是输出:

runfile('C:/Users/eric.bell/Desktop/NB Graphing Data Analysis/Transposing_Test.py', wdir='C:/Users/eric.bell/Desktop/NB Graphing Data Analysis')
16    35
17    36
18    37
19    38
20    39
Name: SN, dtype: object 15    60
16     1
17     1
18     1
19     1
20     1
Name: 26, dtype: object


File "C:\Users\eric.bell\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\core\generic.py", line 2744, in __getattr__
return object.__getattribute__(self, name)

AttributeError: 'Series' object has no attribute 'find'

顶部是正确的,因为它打印了数据。 (出于测试目的,我缩小了范围)然后应该有一个图表,但是我收到了这个错误。

谢谢

这里是数据示例。 我拿了原始文件并为我制作了一个测试文件,所以这应该更容易。例如,它只显示前 11 行和 28 列。

蓝色是 X 值,绿色是 Y 值

在未来,我想在图表中使用相同的 X 值(蓝色)和新的 Y 值(灰色)的第二行。但是,让我们解决它不绘图的问题。

Data Sample

这里还有一个指向文件 0Bin 的链接。

https://0bin.net/paste/QxoRdHk013VLITGX#B8r36SH2Qw3dgds+gLKVI0ZsuxKMR0wCTL+7AbT-5rY

谢谢

【问题讨论】:

  • 您能否编辑问题以包含来自CSV_GM_NB_Test.csv 的数据样本,这样我们就有可能重新创建问题。
  • 好的,我现在已经添加了数据的照片。
  • 也许您可以使用0bin 之类的方式将测试文件上传到,然后在此处发布指向它的链接。
  • 测试文件只是我上传的照片中显示的数据。不过我也会用0bin上传。
  • 它可以让人们不必手动尝试输入所有数据来测试您的代码。

标签: python csv pandas plot


【解决方案1】:

我认为问题在于您的数据被存储为object 类型。转换为 int 似乎可行:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

pd.read_csv('CSV_GM_NB_Test.csv').T.to_csv('GM_NB_Transpose_Test.csv', header=False)
df = pd.read_csv('GM_NB_Transpose_Test.csv', skiprows=2)

plt.plot(df['SN'][16:21].astype(int))
plt.plot(df['26'][15:21].astype(int))
plt.show()

给你一个输出:

【讨论】:

  • 谢谢你,但是我不认为我完全理解 python。我只是想绘制图表。 X 值:35-39(用于测试值) Y 值:1,1,1,1,1,1,1,1 等,直到该值发生变化这有意义吗?我认为我的脚本 [16:21] 是问题所在。我认为这只会从这些单元格中选择数字,但看起来情况并非如此
  • 哦,我刚刚想通了。非常感谢!我确实有另一个问题,请告诉我。解决方案是将两者结合起来: plt.plot(DID[16:21], Value[16:21].astype(int))
  • 很高兴你知道了!开始一个新的 SO 问题可能最容易,然后更多人会看到它。
  • 你好,如果你有时间,这里是我的新问题的链接。谢谢stackoverflow.com/questions/43073778/…
猜你喜欢
  • 1970-01-01
  • 2018-05-13
  • 1970-01-01
  • 2019-05-27
  • 2019-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-12
相关资源
最近更新 更多