2015-12-14 2 views
-2

Я хочу создать функцию перекрестной проверки. У меня есть CSV-файл, который содержит данные:Сплит CSV данные в python

c1,c2,c3,c4 
0.1,y,1,n 
0.4,n,1,n 
0.3,y,2,n 
0.6,y,1,y 

я открыть CSV данных в Python, и я хочу, чтобы разделить данные становятся 2 данных, так что результат, как это.

c1,c2,c3 
0.1,y,1 
0.6,y,1 

и

c1,c2,c3 
0.4,n,1 
0.3,y,2 

какие функции в CSV модулей может сделать это?

[EDIT]

мой код:

def split(path_to_file): 
    reader = csv.reader(file(path_to_file)) 
    split_1=[] 
    split_2=[] 
    for line in reader: 
     split_1.append(line[:-1]) 
     split_2.append(line[:-1]) 

    print split_1 
    print split_2 

Проблема:

split_1.append(line[:-1]) 

, что код будет возвращать данные исключить с4, но показать все данные.

[[c1,c2,c3],[0.1,y,1],[0.4,n,1],[0.3,y,2],[0.6,y,1]] 

Как я разделил его?

+5

Как вы решаете, какие данные идут туда? –

+0

@Altoyr Я редактирую вопрос, включая мой код. – dionajie

+0

Ключевой вопрос, как уже спросил @DirkHorsten, как вы * хотите * разделить данные? В настоящее время вы только что прочитали данные из файла csv и сохранили его в двух списках. – Ogaday

ответ

2

Вы можете использовать функцию а cross_validation из модуля scikit-узнать, как это:

import sklearn 

c1_train, c1_test, c2_train, c2_test = sklearn.cross_validation.train_test_split(c1, c2, test_size=0.5, random_state=0) 
c3_train, c3_test, c4_train, c4_test = sklearn.cross_validation.train_test_split(c3, c4, test_size=0.5, random_state=0) 

Если вы хотите, 50-50 раскола с кодом вы можете сделать это обновление:

import csv 

def split(path_to_file): 
    reader = csv.reader(file(path_to_file)) 

    split_1 = [] 
    split_2 = [] 
    i = 0 
    for line in reader: 
    if i == 0: 
     split_1.append(line[:-1]) 
     split_2.append(line[:-1]) 
    elif i % 2 == 0: 
     split_1.append(line[:-1]) 
    else: 
     split_2.append(line[:-1])  
    i = i + 1 

    print split_1 
    print split_2 
+0

спасибо. Но мне не разрешено использовать модуль sklearn или еще. – dionajie

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