2017-01-08 2 views
0

Довольно новый на python, и я борюсь с чем-то. Я вырываю кучу точек данных из файла CSV, одна точка - дата (мм/дд/гггг). Я беру эту дату и разбиваю ее на каждый «/», чтобы разделить соответствующие части на отдельные списки. Вот где у меня проблемы. В конце моего кода, когда я пытаюсь распечатать каждый индекс списка за пределами нуля, я получаю эти ошибки. В конечном итоге то, что я хочу сделать с этими тремя отдельными объектами даты, добавляет их в виде подписок в конец моего существующего списка ptInfo (ptInfo [8], ptInfo [9], ptInfo [10]). Как я могу это сделать?Назначение новых индексов списка в существующий список

Ошибка выполнения (IndexOutOfRangeException): индекс вне диапазона: 1 Traceback: линии 51, в сценарии

Ошибка выполнения (IndexOutOfRangeException): индекс вне диапазона: 2 Traceback: линии 52, в сценарии

#import Points from CSV 

import rhinoscriptsyntax as rs 
import sys 
import datetime 

input_file = 'C:\Users\kenma\Dropbox (Personal)\Solo Work\Projects\Sweet Crude\Work\data\prepared_uic_data.csv' 

#Init Lists 
a = [] 
apis = []   #0 
operators = []  #1 
operatorNums = [] #2 
wellTypes = []  #3 
dates = []   #4 
lats= []   #5 
longs = []   #6 
zoneAreas = []  #7 
dateFrag = [] 
dateM = []   #8 
dateD = []   #9 
dateY = []   #10 

file = open(input_file, 'r') #open file for reading 
lines = file.readlines()  #read lines into variable 
file.close()     #close the file 
del lines[0]     #delete first header line 

for line in lines: 
    #remove the /n 
    line = line.strip() 

    # split line by the column 
    ptInfo = line.split(',') 
    a = ptInfo 

    # split line data into individual arrays 
    apis.append(ptInfo[0]) 
    operators.append(ptInfo[1]) 
    operatorNums.append(ptInfo[2]) 
    wellTypes.append(ptInfo[3]) 
    dates.append(ptInfo[4]) 
    lats.append(ptInfo[5]) 
    longs.append(ptInfo[6]) 
    zoneAreas.append(ptInfo[7]) 

    dateFrag = ptInfo[4].split("/") 
    print(dateFrag[0]) 
    print(dateFrag[1]) 
    print(dateFrag[2]) 
+0

Ну, по-видимому, ptInfo [4] фактически не имеют каких-либо косые черты в нем. Возможно, вы должны были напечатать это, вместо того, чтобы пытаться распечатать несуществующие результаты раскола. – jasonharper

+0

Это не так. Я распечатал его, поэтому я раскололся. Вот распечатка из ptInfo [4]: ​​11/27/2002 11/13/2000 08/19/1988 12/15/2003 07/11/1985 11/27/2002 11/27/2002 09/17/1996 05/06/2010 06/25/1990 07/14/1999 05/27/1998 03/13/2006 03/08/2006 05/23/1994 – greyBow

+0

Вы не указываете, почему вы нарушаете дату на отдельные части. Поскольку дата - ОДНА вещь, обычно лучше рассматривать ее как таковую. Почему вы нарушаете дату на отдельные части. –

ответ

1

как я затем добавить эти три элемента списка в мой список ptInfo?

>>> pt_info = ['a', 'b', 'c'] 
>>> d = '01/02/03' 
>>> d.split('/') 
['01', '02', '03'] 
>>> pt_info.extend(d.split('/')) 
>>> pt_info 
['a', 'b', 'c', '01', '02', '03'] 
>>> 
+0

Спасибо! Это все, что мне нужно. – greyBow

Смежные вопросы