附加功能不会向熊猫数据框添加任何内容

Append function does not add anything to the panda dataframe

我有以下代码:

import arcpy
from arcpy import env
import pandas as pd

#setting workspace
env.workspace = r"C:\Users_projects1104\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 应该逐行显示每个条目的所有范围。然而,我的 df1 总是导致一个空的 df。

感谢任何帮助。如果需要其他数据,请让我知道如何最好地在此处共享 shapefile,谢谢。

而不是

df1.append(df2, ignore_index=True)

你可以使用

df1 = pd.concat([df1, df2])

如果所有列都匹配

Pandas DataFrame.append() 必须分配给一个变量,否则它会附加另一个数据帧,但永远不会分配它并且一旦附加完成它就消失了,所以只需添加 df1 = 前面追加:

    df1 = df1.append(df2, ignore_index=True)

与我上面的评论相关的可能解决方案:

data = []
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]})
    data.append(df2)

df1 = pd.concat(data, ignore_index=True)