从Excel

时间:2018-05-17 19:39:59

标签: python excel powershell scripting zipcode

我需要从Excel表格中的邮政编码中提取城市和州信息。 我有一张Excel表单,在一列中有超过50,000个邮政编码,我创建了另外两列作为城市和州。

有没有简单的方法或任何常用的公式来找出这些邮政编码的相应城市和州名称,并填写在城市和州列中?

谢谢..

2 个答案:

答案 0 :(得分:0)

使用以下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进一步阅读。

答案 1 :(得分:0)

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

但是数据库federalgovernmentzipcodes.us

点击"免费ZipCode数据库"它应该将.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不是代码编写服务 - 因此代码没有完全完成,完成它取决于你。