我有一個從
但是當我下載檔案時,它包含額外的空格作為填充,以及缺少資料的地方。這意味著我不能使用 Python 的.replace方法將空格更改為NAs。下載原始檔案后,我使用此腳本將空格替換為逗號:
with open("./emerlin_vla_subaru/subaru.dat", 'r') as f:
a=f.readlines()
with open("./emerlin_vla_subaru/subaru_fixed.dat" ,"w ") as f:
for i in range(len(a)):
c=a[i].split()
f.write(",".join(c))
f.write("\n")
但是這種方法會洗掉丟失的單元格并將資料向左移動以填充空白。我嘗試使用 R,但它沒有意識到資料中間有那些空白單元格。有誰知道我如何清理資料,或者找到一個已經整理好的版本?
uj5u.com熱心網友回復:
在 R 中,您可以install.packages("rvest")使用
x <- (rvest::read_html("subaru.dat.gz") |> rvest::html_table())[[1L]]
將資料無損地放入資料框中。您唯一需要的是 RAM,因為 R 是一種 RAM 密集型語言,而且您的 HTML 檔案非常大。將資料讀入記憶體大約需要 5 分鐘。在我的筆記本電腦上,整個程序的峰值記憶體使用量略高于 14 GiB。
輸出應如下所示
> x
# A tibble: 376,380 x 28
`RAdeg DEdegdeg ~ `Bmag (e)mag` `Vmag (e)mag` `rmag (e)mag` `imag (e)mag` `zmag (e)mag` `ymag (e)mag` `[3.6] (e)mag`
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 157.7550584 67.~ 21.6219 ~ 24.0 ~ 23.3316 ~ 22.0066 ~ 21.115 ~ "" "19.87723732 ~
2 157.7448037 67.~ 25.0246 ~ 23.9475 ~ 22.9581 ~ 22.2232 ~ 22.003 ~ "" ""
3 157.7565074 67.~ 24.7904 ~ 25.4817 ~ 24.5512 ~ 23.5114 ~ 24.6046 ~ "" ""
4 157.7241218 67.~ 25.1506 ~ 24.0261 ~ 22.7778 ~ 21.7253 ~ 21.2324 ~ "23.87630082~ "20.19021606 ~
5 157.7430948 67.~ 24.0397 ~ 23.6024 ~ 22.9016 ~ 22.2357 ~ 22.0235 ~ "" ""
6 157.7508459 67.~ 25.3215 ~ 25.3467 ~ 24.385 ~ 24.7648 ~ 24.5042 ~ "" ""
7 157.728751 67.~ 23.7913 ~ 23.5786 ~ 22.4722 ~ 22.05 ~ 21.7701 ~ "" ""
8 157.7336379 67.~ 25.5835 ~ 23.5972 ~ 22.0607 ~ 20.7663 ~ 20.3327 ~ "" "19.24077034 ~
9 157.7610664 67.~ 25.2398 ~ 24.6624 ~ 24.3885 ~ 24.1111 ~ 23.2762 ~ "" ""
10 157.7563166 67.~ 23.1946 ~ 28.0006 ~ 32.30285645 ~ 24.701 ~ 23.2054 ~ "" ""
# ... with 376,370 more rows, and 20 more variables: [4.5] (e)mag <chr>, Id--- <dbl>, za--- <dbl>, chiza--- <dbl>,
# (e) (E) <chr>, (e) (E) <chr>, Nfilt--- <dbl>, e1--- <dbl>, e2--- <dbl>, Radpix <dbl>, RadRatio--- <dbl>,
# BulgeA--- <dbl>, DiscA--- <dbl>, BulgeIndex--- <dbl>, DiscIndex--- <dbl>, BulgeFlux--- <dbl>, DiscFlux--- <dbl>,
# FluxRatio--- <dbl>, snr--- <dbl>, SourceId--- <chr>
績效衡量
> system.time(x <- (rvest::read_html("subaru.dat.gz") |> rvest::html_table())[[1L]])
user system elapsed
288.75 2.72 291.62
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/409154.html
標籤:
