我有一个用C ++内置的主程序,可以生成CSV文件。我已经与PyQt5建立了接口,我想从CSV中读取一些特定的列。
我可以阅读,但我想存储它们以使用matplotlib进行绘制。可能我的错是我正在尝试像处理数组一样处理该行。这是我的readfile函数的外观:
def readCSV(self):
try:
with open('resultado.csv') as csvFile:
reader = csv.DictReader(csvFile, delimiter=';')
i = 0
x, y = []
for row in reader:
print(row["TOA (ns)"], row["Frecuencia Inicial (MHz)"])
x[i] = row["TOA (ns)"]
y[i] = row["Frecuencia Inicial (MHz)"]
i = i+1
except:
print("Error: ", sys.exc_info()[0])
异常打印: 错误:类别为'ValueError'
这是我的csv的第一行,第二行都是float值。我只想要TOA和Frecuencia Inicial列:
答案 0 :(得分:3)
对代码进行了一些更改:只需将值附加到x和y数组,使用精确的列名
def readCSV():
with open('resultado.csv') as csvFile:
reader = csv.DictReader(csvFile, delimiter=';')
x, y = [], []
for row in reader:
try:
print(row["TOA (ns)"], row["Frecuencia Inicial"])
# guess you want
x.append(row["TOA (ns)"])
y.append(row["Frecuencia Inicial"])
#i = i+1
except Exception as e:
print("Error: ", e)
# do something with x, y
# since you use 'self' in the function def I asume this is
# a class method, so you could make x and y class properties
# and then use self.x and self.y in this code
print(x)
print(y)
您可能想查看熊猫的使用情况:
import pandas as pd
df = pd.read_csv("/tmp/indata.csv", delimiter=";")
df
TOA (ns) Frecuencia Inicial
0 10 2000
1 20 3000
在Jupyter笔记本中,您可以使用以下方式进行绘图:
df[['TOA (ns)', 'Frecuencia Inicial']].plot(figsize=(20,10))
您仍然可以使用matplotlib调整图并使用Pandas数据框中的数据