我有一系列.csv文件,其中包含特定列中的坐标信息。问题是,坐标信息在同一列中具有地址信息,并且不总是以相同的格式。
15206 PLANK RD
BAKER, LA 70714
(30.586316235000027, -91.12488045299995)
或
LA
(31.312663324000027, -92.44567750499994)
所以我需要做的就是将lat数据拉入新列,将长数据拉入新列。 我确信这是一个非常简单的直接过程,我只是不确定如何解决这个问题。 我希望有一个python脚本,可以为我指定要搜索的列,并将它只将坐标信息拉入它从中提取数据的相同行中的新列。
答案 0 :(得分:0)
这是一个可以从所需列中提取长/纬度字段的小片段。它使用正则表达式从给定列中提取两个坐标。
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'