我有一个CSV文件,其中包含大量需要绘制和排序的数据,以及不需要的数据。下面是一个数据示例。
10, 50, 60, 74, 19
10, 55, 68, 93, 10
10, 84, 92, 75, 32
10, 58, 39, 82, 12
20, 15, 12, 84, 35
20, 53, 13, 96, 57
20, 53, 32, 64, 67
20, 56, 31, 29, 18
30, 85, 92, 18, 95
30, 75, 12, 92, 12
...
90, 35, 21, 95, 47
100, 67, 96, 73, 47
100, 86, 32, 62, 32
100, 32, 53, 69, 57
100, 34, 64, 72, 34
我正在寻找的是第一行,第四行,第八行等,并将它们放入列表中。所以它看起来像这样:
column1 = ['10', '20', '30', ..., '100']
column3 = ['60', '12', '92', ..., '73']
column5 = ['19', '35', '95', ..., '47']
注意:数据集的第一行应该在输出的第一列,数据的第二行是第二列的输出,等等。 此外,我希望能够控制我选择放入列表的列(以及哪些行)。
我也正在寻找一种方法来调整我想要开始的第n行。例如,如果我们从第2行开始,输出就是这样:
column1 = ['10', '20', '30', ..., '100']
column3 = ['68', '13', '12', ..., '32']
column5 = ['10', '35', '12', ..., '32']
这是我到目前为止的代码:
import numpy as np
import matplotlib.pyplot as plt
import csv
column1 = []
column2 = []
column4 = []
with open('csvFile.csv', 'rb') as f:
w = csv.reader(f, delimiter = ',')
for i, line in enumerate(w):
if i == 0 or i == 1:
pass # Skip first row
else:
column1.append(line[1])
column2.append(line[2])
column4.append(line[4])
这给了我列中的所有值,这是我不想要的。也许我已经过度思考了这一点,因为我在考虑做的事情是将列表编入索引并删除我不想要的值(我的数据集比这里显示的要大得多 - 我总共有每个第一个数字26行(即数字10的26行,其后有数据,26行20个数据,26个30个等))
答案 0 :(得分:1)
您可以检查i
是否为四的倍数。如果它不是四的倍数,则跳过
with open("data", 'rb') as f:
w = csv.reader(f,delimiter = ",")
for i, line in enumerate(w):
if (i % 4 == 0):
column1.append(line[0])
column2.append(line[1])
column3.append(line[2])