【问题标题】:Extracting city and state info out of zip codes in Excel [duplicate]从Excel中的邮政编码中提取城市和州信息[重复]
【发布时间】:2018-10-28 04:33:35
【问题描述】:

我需要从我的 Excel 表格中的邮政编码中提取城市和州信息。 我有一张 Excel 表,其中一列中有超过 5 万个邮政编码,我在它旁边创建了另外 2 列作为城市和州。

有没有什么简单的方法或者通用的公式可以用这些邮政编码找出对应的城市和州名,并将它们填充到城市和州的列中?

谢谢..

【问题讨论】:

  • 没有公式计算可以从邮政编码推导出城市和州。您需要使用一些数据库来获取这些映射。

标签: python excel powershell scripting zipcode


【解决方案1】:

使用以下python模块ZipcodeSearchEngine:-

>>> from uszipcode import ZipcodeSearchEngine
>>> search = ZipcodeSearchEngine()
>>> zipcode = search.by_zipcode("10001")
>>> print(zipcode)
{
    "City": "New York",
    "Density": 34035.48387096774,
    "HouseOfUnits": 12476,
    "LandArea": 0.62,
    "Latitude": 40.75368539999999,
    "Longitude": -73.9991637,
    "NEBoundLatitude": 40.8282129,
    "NEBoundLongitude": -73.9321059,
    "Population": 21102,
    "SWBoundLatitude": 40.743451,
    "SWBoungLongitude": -74.00794499999998,
    "State": "NY",
    "TotalWages": 1031960117.0,
    "WaterArea": 0.0,
    "Wealthy": 48903.42702113544,
    "Zipcode": "10001",
    "ZipcodeType": "Standard"
}

参考:https://pypi.org/project/uszipcode/#description 进一步阅读。

【讨论】:

  • 他问如何在 PowerShell 而不是 python 中执行此操作...我还认为在 PowerShell 中执行此操作要容易一些,因为 Excel 是 Microsoft 产品,和 PowerShell 一样。
  • 我同意 Kolob 关于使用 PoweShell 访问 Excel。但是,我发现了有问题的 python 标签。所以我认为它可能对 Hakan 有帮助,虽然 python 在窗口上处理 excel 并没有那么糟糕:)
  • 啊,没看到 Python 标签我的错
  • 你们太棒了,非常感谢您的回答。我完全是这个平台的新手,如果我以错误的方式问我的问题,我很抱歉。我还想出了一个 Excel 公式: =IF(A2="","",VLOOKUP(A2,'Zip Code Data'!A2:J42524,3)) 它适用于我几乎一半的邮政编码,它显示了城市和州名正确,但另一半显示城市和州名的#NA。
【解决方案2】:

很确定没有将邮政编码转换为城市/州的算法。

但是有一个数据库federalgovernmentzipcodes.us

点击“免费邮政编码数据库”,它会下载一个.csv 文件到您的下载文件夹。

然后在 PowerShell 中:

$all_zip_codes = Import-CSV "C:\path\to\database.csv"
$my_excel_sheet = Import-CSV "C:\path\to\my\file.csv"

function getCityAndState($zip_code)
{
      // loop through $all_zip_codes and find the data
}

$output_csv = "C:\path\to\my\output.csv"
$obj = new-object psobject
$arr = @()
foreach($my_row in $my_excel_sheet)
{
    $obj = $my_row;
    $cityState = getCityAndState($my_row.zipCode)
    $obj | Add-Member -Name 'City' -Value = $cityState.City
    $obj | Add-Member -Name 'State' -Value = $cityState.State
    $arr += $obj
    
}
$arr | Export-Csv -NoTypeInformation "$output_csv"

我停止编写代码是因为您应该能够根据我给您的内容弄清楚它。 Import-CSV 将在这里成为你的朋友。

StackOverflow 不是代码编写服务 - 因此代码还没有完全完成,由您来完成。

【讨论】:

    猜你喜欢
    • 2015-09-25
    • 2013-04-05
    • 1970-01-01
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多