如何在python中存储csv中的行值?

时间:2018-07-13 09:20:07

标签: python csv

我有一个用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列:

enter image description here

1 个答案:

答案 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数据框中的数据