簡體   English   中英

跳過某些數據行-Python

[英]Skipping certain lines of data - Python

我有一個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是否是四的倍數。 如果不是四的倍數,則跳過

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM