【发布时间】:2021-11-05 10:07:31
【问题描述】:
我有以下代码:
import arcpy
from arcpy import env
import pandas as pd
#setting workspace
env.workspace = r"C:\Users\4_projects\211104\Network.gdb"
env.overwriteOutput = True #existing output will be overwritten
buchs = r"buchs"
rows = arcpy.SearchCursor(buchs)
shapeName = arcpy.Describe(buchs).shapeFieldName
df1 = pd.DataFrame()
for row in rows:
feat = row.getValue(shapeName)
extent = feat.extent
df2 = pd.DataFrame({"XMin": [extent.XMin],
"YMin": [extent.YMin],
"XMax": [extent.XMax],
"YMax": [extent.YMax]})
df1.append(df2, ignore_index=True)
我的目标是通过创建一个临时 df df2 从每个 row 提取 X 和 Y 范围,然后将其附加到 df1。所以df1 应该是一行一行的,每个条目的所有范围。但是,我的 df1always 会导致一个空的 df。
感谢任何帮助。如果需要其他数据,请让我知道如何在此处最好地共享 shapefile,谢谢。
【问题讨论】:
-
您能否分享您的文件样本
Network.gdb(wetransfer、Dropbox,...),好吗?也许你可以使用 Geopandas。 -
另外,您可以更改您的模式以构建
df1。最好的策略是在 dict 或 list 等 python 数据结构中收集数据,最后使用pd.concat构建您的数据框。
标签: python pandas dataframe arcpy