繁体   English   中英

将 .data 文件转换为 .csv

[英]convert .data file to .csv

我发现以下名为 ecoli.data 的数据集可用于:

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

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

将文件重命名为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 )

在文件夹中重命名它

ecoli.data 

ecoli.csv

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

以下是在 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")

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

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

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

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

使用 Window Power shell 命令,

cat German.data | %{$_ -replace " ",","} | sc 德语.csv

使用 UXIX SED 命令,

sed 's/ /,/g' German.data > German.csv

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM