【问题标题】:copy geopandas rows to a blank geopandas row将 geopandas 行复制到空白 geopandas 行
【发布时间】:2022-01-17 14:06:10
【问题描述】:

我有一个要从 geopandas 数据框中提取的邮政编码列表。我能够成功地检测到带有邮政编码列表 (rfp) 的行,但无法创建仅复制新行的新 geopandas DataFrame。

我试过追加,iloc

有没有更简单的方法来完成这项工作?

i =0
while i < len(rfp):
    for index, row in countries.iterrows():
            if rfp[i] == row['CFSAUID']:
                #print(index, row)
                print(index, row['CFSAUID'], countries.iloc[index])
                #data=data.append[countries.iloc[index]] 
    #print(rfp[i])
    i = i + 1
data.head()

【问题讨论】:

    标签: python pandas dataframe geopandas


    【解决方案1】:
    • 您似乎无缘无故地使 pandas / geopandas 过滤功能过于复杂
    • 已获取所有美国邮政编码几何形状
    • 使用loc[]过滤到20个代码
    • 已将几何简化为 质心,以便能够在此答案中显示输出
    import geopandas as gpd
    gdf = gpd.read_file("https://www2.census.gov/geo/tiger/TIGER2021/ZCTA520/tl_2021_us_zcta520.zip")
    
    zipcode = ['41714', '47994', '40502', '46550', '46385', '46731', '46170',
           '40071', '46049', '46985', '46256', '41603', '40511', '41005',
           '46808', '41006', '47338', '46118', '40003', '41179']
    
    
    gdf2 = gdf.loc[gdf["ZCTA5CE20"].isin(zipcode)].copy()
    gdf2["geometry"] = gdf2["geometry"].centroid
    gdf2
    
    ZCTA5CE20 GEOID20 CLASSFP20 MTFCC20 FUNCSTAT20 ALAND20 AWATER20 INTPTLAT20 INTPTLON20 geometry
    17 46118 46118 B5 G6350 S 141161691 408941 39.6587 -86.5313 POINT (-86.52394789855478 39.65319687881211)
    19 46256 46256 B5 G6350 S 28865547 2051373 39.9084 -86.0131 POINT (-86.0114959356422 39.90683668248156)
    36 46731 46731 B5 G6350 S 40833756 74360 40.7935 -85.0996 POINT (-85.10270347937339 40.79753662311887)
    66 46985 46985 B5 G6350 S 170789205 115396 40.9595 -86.5805 POINT (-86.58222146640128 40.95485185925257)
    67 47994 47994 B5 G6350 S 56334635 0 40.1823 -87.0823 POINT (-87.0823111593409 40.18233088778645)
    75 40071 40071 B5 G6350 S 314120461 3703551 38.0429 -85.3788 POINT (-85.37070453567415 38.04328301537532)
    76 41005 41005 B5 G6350 S 135617739 97008 39.0068 -84.7601 POINT (-84.7653976667778 39.00706909605251)
    81 40511 40511 B5 G6350 S 222838540 808726 38.141 -84.4616 POINT (-84.47394279725246 38.13277356826288)
    83 40502 40502 B5 G6350 S 18509366 699624 38.011 -84.4832 POINT (-84.48188158114969 38.01371604197583)
    86 40003 40003 B5 G6350 S 112166630 1151993 38.2767 -85.0438 POINT (-85.04368804019533 38.26863127746849)
    92 41006 41006 B5 G6350 S 143721210 2283721 38.7844 -84.3456 POINT (-84.34296186884575 38.78473023614392)
    100 41179 41179 B5 G6350 S 877946552 2573419 38.535 -83.3701 POINT (-83.38987423897763 38.52484654452977)
    108 41603 41603 B5 G6350 S 36349511 116254 37.5715 -82.7046 POINT (-82.68704929399041 37.55933118794476)
    140 41714 41714 B5 G6350 S 31218191 51291 37.1632 -83.5058 POINT (-83.50751835227443 37.16518559160255)
    142 46385 46385 B5 G6350 S 209128553 1458064 41.4644 -87.1241 POINT (-87.12395316038518 41.46394402403933)
    146 46550 46550 B5 G6350 S 185523489 140699 41.4469 -86.0006 POINT (-86.00026862329979 41.4470028890462)
    156 46049 46049 B5 G6350 S 67941709 6187 40.295 -86.2218 POINT (-86.22160670624778 40.29760037111507)
    163 46808 46808 B5 G6350 S 27442493 192647 41.0978 -85.1771 POINT (-85.17619884243086 41.0988556047745)
    176 47338 47338 B5 G6350 S 77579648 653392 40.3424 -85.3374 POINT (-85.33974232857304 40.34362126071514)
    188 46170 46170 B5 G6350 S 521838 0 39.5716 -86.8627 POINT (-86.86265114552866 39.57162423401216)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-10
      相关资源
      最近更新 更多