从具有地址信息的 .csv 列中提取坐标数据

pull coordinate data from .csv column that has address info

我有一系列 .csv 文件,在特定列中包含坐标信息。问题是,坐标信息在同一列中有地址信息,而且格式并不总是相同的。

15206 PLANK RD
BAKER, LA 70714
(30.586316235000027, -91.12488045299995)

LA
(31.312663324000027, -92.44567750499994)

所以我需要做的就是将纬度数据拉到一个新列中,将长数据拉到一个新列中。 我确信这是一个非常简单直接的过程,我只是不确定如何解决这个问题。 我想要一个 python 脚本,它可以在我指定要搜索的列的地方为我执行此操作,并让它仅将坐标信息拉入它从中拉取数据的同一行中的新列。

这是一个可以从所需列中提取 long/lat 字段的小片段。它使用正则表达式从给定列中提取两个坐标。

output = []
with open(DATA_CSV_NAME, 'rb') as csvfile:
    datareader = csv.reader(csvfile)
    for row in datareader:
        m = re.search('\((-?\d+\.\d+),\s(-?\d+\.\d+)\)', row[DESIRED_COLUMN])
        lat = m.group(1) if m else '0.0'
        long = m.group(2) if m else '0.0'
        row.append(lat)
        row.append(long)
        output.append(row)

下面是工作中的正则表达式示例:

>>> m = re.search('\((-?\d+\.\d+),\s(-?\d+\.\d+)\)', '15206 PLANK RD\nBAKER, LA 70714\n(31.312663324000027, -92.44567750499994)')
>>> m.group(0)
'(31.312663324000027, -92.44567750499994)'
>>> m.group(1)
'31.312663324000027'
>>> m.group(2)
'-92.44567750499994'