将.data文件转换为.csv

时间:2015-06-10 16:59:57

标签: python r excel csv

我找到了以下名为ecoli.data的数据集,可在以下位置找到:

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

我想在R中打开它来进行分类任务,但我更愿意将此文档转换为csv文件。当我在单词中打开它时,我注意到没有制表符分隔,因为每行之间有类似的树空格;所以底线问题是如何使用Excel或Python将此文件转换为csv。

8 个答案:

答案 0 :(得分:5)

将文件重命名为ecoli.txt,然后在Excel中将其打开。这样您就可以使用"文本导入向导" Microsoft Excel,使您可以选择"固定宽度"等选项。只需点击" next"几次"完成"并且您将拥有Excel网格中的数据。现在再次将其另存为CSV。

答案 1 :(得分:2)

使用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 )

答案 2 :(得分:2)

在文件夹中重命名

ecoli.data 

ecoli.csv

然后你可以在你的代码中使用 csv 的标准导入代码,无需任何添加。没有更多的回头看它。 它对我有用 adult.data!

答案 3 :(得分:1)

以下两种方法可以在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")

答案 4 :(得分:0)

使用 pandas.read_table('https://archive.ics.uci.edu/ml/machine-learning-databases/ecoli/', delim_whitespace=True)

答案 5 :(得分:0)

这很简单,单击实际的数据集名称,例如:xyz.data并用XYZ.csv重命名,它将转换为CSV格式。

答案 6 :(得分:0)

解决问题的另一种方法是使用.data命令在R上读取read.table文件。

ecoli <- read.table("ecoli.data",header=F)

答案 7 :(得分:0)

我得到的最简单的方法是将文件从ecoli.data重命名为ecoli.csv,但不在PC中。重命名您的手机。它将自动转换扩展名。