конвертировать .data файл в .csv

Я нашел следующий набор данных с именем ecoli.data и доступен в:

https://archive.ics.uci.edu/ml/machine-learning-databases/ecoli/

Я хотел бы открыть его в R для создания задачи классификации, но я бы предпочел преобразовать этот документ в файл csv. Когда я открываю его в слове, я замечаю, что это не разграничение табуляции, потому что между каждой строкой есть похожие деревья; поэтому основной вопрос заключается в том, как преобразовать этот файл в csv с помощью Excel или, возможно, Python.

Переименуйте файл в ecoli.txt затем откройте его в Excel. Таким образом вы будете использовать «Мастер импорта текста» Microsoft Excel, который позволяет вам выбирать такие параметры, как «Фиксированная ширина». Просто нажмите «Далее» несколько раз и «закончите», и у вас будут данные в сетке Excel. Теперь сохраните его снова как CSV.

Использование Python 2.7:

 import csv with open('ecoli.data.txt') as input_file: lines = input_file.readlines() newLines = [] for line in lines: newLine = line.strip().split() newLines.append( newLine ) with open('output.csv', 'wb') as test_file: file_writer = csv.writer(test_file) file_writer.writerows( newLines ) 

Вот два способа сделать это в R (что работает):

 library(readr) url <- "https://archive.ics.uci.edu/ml/machine-learning-databases/ecoli/ecoli.data" 

с базой R

 df <- read.table(url) dplyr::glimpse(df) ## Observations: 336 ## Variables: ## $ V1 (fctr) AAT_ECOLI, ACEA_ECOLI, ACEK_ECOLI, ACKA_ECOLI, ADI_ECOLI, ... ## $ V2 (dbl) 0.49, 0.07, 0.56, 0.59, 0.23, 0.67, 0.29, 0.21, 0.20, 0.42,... ## $ V3 (dbl) 0.29, 0.40, 0.40, 0.49, 0.32, 0.39, 0.28, 0.34, 0.44, 0.40,... ## $ V4 (dbl) 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48,... ## $ V5 (dbl) 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5,... ## $ V6 (dbl) 0.56, 0.54, 0.49, 0.52, 0.55, 0.36, 0.44, 0.51, 0.46, 0.56,... ## $ V7 (dbl) 0.24, 0.35, 0.37, 0.45, 0.25, 0.38, 0.23, 0.28, 0.51, 0.18,... ## $ V8 (dbl) 0.35, 0.44, 0.46, 0.36, 0.35, 0.46, 0.34, 0.39, 0.57, 0.30,... ## $ V9 (fctr) cp, cp, cp, cp, cp, cp, cp, cp, cp, cp, cp, cp, cp, cp, cp... write.csv(df, "ecoli.csv", row.names=FALSE) 

с функциями readr

 df <- read_table(url, col_names=FALSE) dplyr::glimpse(df) ## Observations: 336 ## Variables: ## $ X1 (chr) "AAT_ECOLI", "ACEA_ECOLI", "ACEK_ECOLI", "ACKA_ECOLI", "ADI... ## $ X2 (dbl) 0.49, 0.07, 0.56, 0.59, 0.23, 0.67, 0.29, 0.21, 0.20, 0.42,... ## $ X3 (dbl) 0.29, 0.40, 0.40, 0.49, 0.32, 0.39, 0.28, 0.34, 0.44, 0.40,... ## $ X4 (dbl) 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48,... ## $ X5 (dbl) 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5,... ## $ X6 (dbl) 0.56, 0.54, 0.49, 0.52, 0.55, 0.36, 0.44, 0.51, 0.46, 0.56,... ## $ X7 (dbl) 0.24, 0.35, 0.37, 0.45, 0.25, 0.38, 0.23, 0.28, 0.51, 0.18,... ## $ X8 (dbl) 0.35, 0.44, 0.46, 0.36, 0.35, 0.46, 0.34, 0.39, 0.57, 0.30,... ## $ X9 (chr) "cp", "cp", "cp", "cp", "cp", "cp", "cp", "cp", "cp", "cp",... write_csv(df, "ecoli.csv")