【发布时间】:2017-01-28 21:25:49
【问题描述】:
我有一个 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
我正在寻找的是将第一行、第 4 行、第 8 行等放入列表中。所以它看起来像这样:
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 行第一个数字(即 26 行数字 10 后面有数据,26 行 20 有数据,26 行 30 等)
【问题讨论】:
-
我对第一行,第四行,第八行的事情感到很困惑。好像是第 1 列、第 3 列和第 5 列?
-
我每 4 行查找一次数据。因此,例如,如果我们从第 2 行 (10, 55, 68, 93, 10) 开始,我们将进入第 6 行 (20, 53, 13, 96, 57),第 10 行(示例中未显示) .我还需要控制要从哪一行开始。