亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

獲取一列中有向量的 csv c(,)

獲取一列中有向量的 csv c(,)

冉冉說 2023-09-26 14:23:50
我使用 R 來準備數據,但我發現自己被迫使用 python。csv 文件已存儲為 sf 數據框,其中列幾何形狀存儲經度和緯度。在我的文件中,我有以下結構:a,geometry,b50,c(-95.11, 10.19),32.2460,,c(-95.12, 10.27),22.7970,c(-95.13, 10.28),14.9180,c(-95.14, 10.33),18.3590,c(-95.15, 10.5),28.3599,c(-95.16, 10.7),48.91這里的目的是在知道 c(-95.11, 10.19) 是 lon 和 lat 2 個值的情況下讀取文件,以便它們可以存儲在兩個不同的列中。然而,將分隔符放在值內(也不是字符串)使得這真的很難做到。預期輸出應該是:a,long,lat,b50,-95.11, 10.19,32.2460,,-95.12, 10.27,22.7970,-95.13, 10.28,14.9180,-95.14, 10.33,18.3590,-95.15, 10.5,28.3599,-95.16, 10.7,48.91
查看完整描述

2 回答

?
慕后森

TA貢獻1802條經驗 獲得超5個贊

這是否有效(輸入文件:data.csv;輸出文件:data_out.csv):


import csv


with open('data.csv', 'r') as fin, open('data_out.csv', 'w') as fout:

    reader, writer = csv.reader(fin), csv.writer(fout)

    next(reader)

    writer.writerow(['a', 'long', 'lat', 'b'])

    for row in reader:

        row[1] = row[1][2:]

        row[2] = row[2][1:-1]

        writer.writerow(row)

在您的示例輸出中,第二列之后是空白:這是有意的嗎?,另外,您的示例輸入在第一列之后的第二行中有一個雙精度?


查看完整回答
反對 回復 2023-09-26
?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

如果您正在尋找基于 R 的解決方案,您可以考慮將坐標從{sf}基于幾何列提取到常規列中,并相應保存。


考慮這個例子,它建立在三個半隨機的北卡羅來納州城市上:


library(sf)

library(dplyr)


cities <- data.frame(name = c("Raleigh", "Greensboro", "Wilmington"),

                     x = c(-78.633333, -79.819444, -77.912222),

                     y = c(35.766667, 36.08, 34.223333)) %>% 

  st_as_sf(coords = c("x", "y"), crs = 4326)


cities # a class sf data.frame

Simple feature collection with 3 features and 1 field

geometry type:  POINT

dimension:      XY

bbox:           xmin: -79.81944 ymin: 34.22333 xmax: -77.91222 ymax: 36.08

geographic CRS: WGS 84

        name                   geometry

1    Raleigh POINT (-78.63333 35.76667)

2 Greensboro    POINT (-79.81944 36.08)

3 Wilmington POINT (-77.91222 34.22333)


mod_cit <- cities %>% 

  mutate(long = st_coordinates(.)[,1],

         lat = st_coordinates(.)[,2]) %>% 

  st_drop_geometry()


mod_cit # a regular data.frame

        name      long      lat

1    Raleigh -78.63333 35.76667

2 Greensboro -79.81944 36.08000

3 Wilmington -77.91222 34.22333


查看完整回答
反對 回復 2023-09-26
  • 2 回答
  • 0 關注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號