我正在尝试从 excel 读取地址信息,将其分解为街道名称街道编号方向邮政编码,然后根据分类再次将其写入另一个 excel 或 csv 完成。
Sample input
Address1
107 ALVISO DR
12418 SUNNYGLEN DR
2292 MAGNOLIA ST
2092 ATWATER AVE
1242 CARLSBAD PL
示例输出
ZipCode StreetNamePostDirectional StreetNamePreDirectional
777 E N
基于某些规则集。我正在使用下面的代码。问题是当我将数据写入 csv 时,它只是重新运行 1 行。
import csv
import usaddress
import xlsxwriter
file_name = 'Address.xlsx'
import pandas as pd
xl_workbook = pd.ExcelFile(file_name) # Load the excel workbook
df = xl_workbook.parse("Sheet1") # Parse the sheet into a dataframe
aList = df['Address1'].tolist()
di = {}
dicts ={}
for i in aList:
i = str(i)
x = usaddress.parse(i)
for ele in x:
try:
di[ele[1]].append(ele[0])
except KeyError:
di[ele[1]] = [ele[0],]
dicts.update(di)
with open("test.csv", "w") as outfile:
writer = csv.writer(outfile)
writer.writerow(dicts.keys())
writer.writerows(zip(*dicts.values()))
不确定出了什么问题
如果将表转换为具有适当标题的 CSV,则可以执行以下操作来访问每行中的数据:
import csv
with open('C:folder\file.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
var1 = (row["street namezip code"])
var2 = (row["street number"])
var3 = (row["zip code"])
从那里,您可以使用这些变量来创建输出。我希望这有所帮助。