[英]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.