Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
跳过某些数据行-Python_Python_List_Csv_Indexing - Fatal编程技术网

跳过某些数据行-Python

跳过某些数据行-Python,python,list,csv,indexing,Python,List,Csv,Indexing,我有一个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

我有一个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行数据,数字20后面有26行数据,数字30后面有26行数据,等等。

你可以检查i是否是4的倍数。如果不是四的倍数,则跳过

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])

我对第一排,第四排,第八排的事情很困惑。看起来像是第1列、第3列和第5列?我每4行查找一次数据。例如,如果我们从第二行10,55,68,93,10开始,我们将进入第六行20,53,13,96,57,第十行,在示例中没有显示。我还需要控制要从哪一行开始。如果I%4==0,为什么不添加行:附加行,而不是测试I%4!=0:然后通过并使用else分支?因为我昏昏欲睡,没有想到这一点:好的,现在我看它有意义了。我不知道为什么以前没想到这个。但现在我该如何控制我从哪一行开始呢?@brandonmoleneaux这取决于你所说的开始是什么意思。如果您的意思是希望从第二行开始,然后每隔四行就可以将测试更改为i%4==1