簡體   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