Как импортировать файл данных csv в scikit-learn?

По моему мнению, scikit-learn принимает данные в формате (n-sample, n-feature), который представляет собой 2D-массив. Предполагая, что у меня есть данные в форме …

Stock prices indicator1 indicator2 2.0 123 1252 1.0 .. .. .. . . . 

Как импортировать это?

  • Объединение / объединение 2 DataFrames по сложным критериям
  • Как получить наиболее информативные функции для scikit-learn classifier для разных классов?
  • Различные результаты с roc_auc_score () и auc ()
  • Как разбить данные на 3 набора (поезд, валидация и тест)?
  • Передача категориальных данных в Дерево решений Sklearn
  • Коэффициент нагрузки с использованием sklearn
  • В чем разница между KFold и ShuffleSplit CV?
  • sklearn.cross_validation.StratifiedShuffleSplit - ошибка: «индексы вне пределов»
  • 3 Solutions collect form web for “Как импортировать файл данных csv в scikit-learn?”

    Это не файл CSV; это просто файл, разделенный пробелом. Предполагая, что нет пропущенных значений, вы можете легко загрузить это в массив Numpy, называемый data с

     import numpy as np f = open("filename.txt") f.readline() # skip the header data = np.loadtxt(f) 

    Если цена акций – это то, что вы хотите предсказать (ваше значение y , в условиях scikit-learn), вы должны разделить data используя

     X = data[:, 1:] # select columns 1 through end y = data[:, 0] # select column 0, the stock price 

    Кроме того, вы можете настроить стандартный модуль Python csv обработки этого типа файла.

    Очень хорошая альтернатива numpy loadtxt – read_csv из Pandas . Данные загружаются в кадр данных Pandas с большим преимуществом, что он может обрабатывать смешанные типы данных, такие как некоторые столбцы, содержащие текст и другие столбцы, содержащие числа. Затем вы можете легко выбрать только числовые столбцы и преобразовать в массив numpy с as_matrix . Pandas также будет читать / писать файлы excel и кучу других форматов .

    Если у нас есть файл csv с именем «mydata.csv»:

     point_latitude,point_longitude,line,construction,point_granularity 30.102261, -81.711777, Residential, Masonry, 1 30.063936, -81.707664, Residential, Masonry, 3 30.089579, -81.700455, Residential, Wood , 1 30.063236, -81.707703, Residential, Wood , 3 30.060614, -81.702675, Residential, Wood , 1 

    Это будет считываться в csv и преобразовывать числовые столбцы в массив numpy для scikit_learn, а затем изменять порядок столбцов и записывать его в таблицу Excel:

     import numpy as np import pandas as pd input_file = "mydata.csv" # comma delimited is the default df = pd.read_csv(input_file, header = 0) # for space delimited use: # df = pd.read_csv(input_file, header = 0, delimiter = " ") # for tab delimited use: # df = pd.read_csv(input_file, header = 0, delimiter = "\t") # put the original column names in a python list original_headers = list(df.columns.values) # remove the non-numeric columns df = df._get_numeric_data() # put the numeric column names in a python list numeric_headers = list(df.columns.values) # create a numpy array with the numeric values for input into scikit-learn numpy_array = df.as_matrix() # reverse the order of the columns numeric_headers.reverse() reverse_df = df[numeric_headers] # write the reverse_df to an excel spreadsheet reverse_df.to_excel('path_to_file.xls') 

    Вы можете найти функцию loadtxt в numpy .

    Чтобы получить дополнительные входы в метод loadtxt.

    Простым изменением для csv является

     data = np.loadtxt(fname = f, delimiter = ',') 
    Python - лучший язык программирования в мире.