无法将数据写入已使用python根据街道名称和地址拆分的excel

2024-05-18 02:51:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从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时,它只运行一行

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()))

不确定出了什么问题


Tags: csvnameimportas街道excelfilewriter
1条回答
网友
1楼 · 发布于 2024-05-18 02:51:24

如果将表制作成带有适当标题的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"])

从那里你可以使用这些变量来创建你的输出。 我希望这有帮助

相关问题 更多 >