当我从 pandas df 转换为字典时,为什么会丢失记录?

我正在尝试将从美国县的 shapefile 创建的大约 3233 条记录的 DBF 转换为数据框;然后我想从该数据框中获取两列并转换为字典,其中column1键和column2值是。但是,生成的字典与我的数据框的记录数不同。

  • 我使用 arcpy 调用所有美国县的 shapefile。当我使用 arcpy.GetCount_management(county_shapefile) 时,这将返回 3233 条记录的特征计数。

  • 为了转换为数据框,我首先使用 arcpy.TableToTableconversion() 转换为 dbf,这将返回一个包含 3233 条记录的 dbf。

  • 使用 simpledbf 中的 Dbf5 转换为 df 后,我得到一个包含 3233 条记录的 df。

  • 然后,我将前两列转换为返回 56 条记录的字典。谁能告诉我这里发生了什么?(我最近从 Python 2 切换到 Python 3,这可能是问题的一部分吗?)

代码:

county_shapefile = "U:/Shapefiles/tl_2018_us_county/tl_2018_us_county.shp"

dbf = arcpy.TableToTable_conversion(county_shapefile,"U:/","county_data.dbf")


from simpledbf import Dbf5

dbfile = Dbf5(str(dbf))

df = dbfile.to_dataframe()


df_dict = {row[0]:row[1] for row in df.values}

我也试过用这个.to_dict()函数做这个,但我没有得到想要的字典结构 {column1:column2,column1:column2...}


from simpledbf import Dbf5

dbfile=Dbf5(str(dbf))

df=dbfile.to_dataframe()

subset=df[["STATEFP","COUNTYFP"]]

subset=subset.set_index("COUNTYFP")

dict=subset.to_dict()

最后,我希望创建一个字典,其中键是县 FIPS 代码 (COUNTYFP),值是州 FIPS 代码 (STATEFP)。我不想有任何嵌套字典,只是一个具有格式的简单字典......


dict={

   COUNTYFP1:STATEFP1,

   COUNTYFP2:STATEFP2,

   COUNTYFP3:STATEFP3,

   ....

}


梵蒂冈之花
浏览 187回答 1
1回答

侃侃无极

你确定column1没有重复吗?因为python中的字典不支持重复键!如果要保留 as 键中的所有值,则必须column1为相同的.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python