Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从Excel中的邮政编码中提取城市和州信息_Python_Excel_Powershell_Scripting_Zipcode - Fatal编程技术网

Python 从Excel中的邮政编码中提取城市和州信息

Python 从Excel中的邮政编码中提取城市和州信息,python,excel,powershell,scripting,zipcode,Python,Excel,Powershell,Scripting,Zipcode,我需要从我的Excel表格中的邮政编码中提取城市和州信息。 我有一个Excel表格,在一列中有超过50000个邮政编码,我在它旁边创建了另外两列,分别是City和State 有没有什么简单的方法或通用的公式来找出带有这些邮政编码的相应城市和州名称,并将它们填入城市和州列中 谢谢..使用以下python模块ZipCodeSearchAngine:- >>> from uszipcode import ZipcodeSearchEngine >>> search

我需要从我的Excel表格中的邮政编码中提取城市和州信息。 我有一个Excel表格,在一列中有超过50000个邮政编码,我在它旁边创建了另外两列,分别是City和State

有没有什么简单的方法或通用的公式来找出带有这些邮政编码的相应城市和州名称,并将它们填入城市和州列中


谢谢..

使用以下python模块ZipCodeSearchAngine:-

>>> 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"
}

参考:供进一步阅读。

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

但是有一个数据库

点击“免费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"
我停止编写代码是因为你应该能够根据我给你的东西来理解它<代码>导入CSV将成为您的朋友


StackOverflow不是一个代码编写服务-因此代码还没有完全完成,这取决于您完成它。

他问如何在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。从邮政编码推导城市和州没有公式化的计算。您需要使用一些数据库来获取这些映射。