如何在一定范围内打印值时,如何读取CSV文件中的特定行和列

时间:2017-02-23 02:53:31

标签: python csv

您好,我在查看csv文件中的特定行和列时遇到了一些问题。

我目前的目标是查看其中几个不同的列。最重要的是,我想查看数据值(例如0.26)并对特定列中0.21和0.31之间的值进行排序。我的问题是我不知道如何同时做这两件事。我不断收到错误,告诉我我不能使用'< ='和float和str。

继承我的代码:

    import csv
    from collections import defaultdict

    columns = defaultdict(list) # each value in each column is appended to a list

    with open('C:\\Users\\AdamStoer\\Documents\\practicedata.csv') as f:
    reader = csv.DictReader(f,delimiter=',') # read rows into a dictionary format
    for row in reader:
        for columns['pitch'] in row:
            for v in columns['pitch']:
                p=float(v)
                if p <= 0.5:
                    columns['pitch'].append(v)
    print(columns['pitch'])

此代码在最后一部分

之前正在运行
for row in reader: # read a row as {column1: value1, column2: value2,...}
    for (k,v) in row.items(): # go over each column name and value 
        columns[k].append(v) # append the value into the appropriate list
                             # based on column name k
print(columns['pitch'])

1 个答案:

答案 0 :(得分:0)

看起来你混淆了几件事。如果您知道所需的特定列(间距),则不必遍历每行中的所有列。您可以直接访问它:

for row in reader:
    p = float(row['pitch'])
    if p <= 0.5:
        print p

我很难说出你想要的输出,但是这里有一个例子,它只关注每一行的音高,如果匹配,则将该行的所有目标值附加到列字典中。

targets = ('pitch', 'roll', 'yaw')
columns = defaultdict(list)

for row in reader:
    p = float(row['pitch'])
    if p >= 0.21 and p <= 0.31:
        for target in targets:
            column[target].append(row[target])