为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

梵蒂冈之花 2022-04-27 13:24:06
我正在尝试将从美国县的 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 Dbf5dbfile = 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 Dbf5dbfile=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,   ....}
查看完整描述

1 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

你确定column1没有重复吗?因为python中的字典不支持重复键!如果要保留 as 键中的所有值,则必须column1为相同.



查看完整回答
反对 回复 2022-04-27
  • 1 回答
  • 0 关注
  • 186 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信