附加功能不会向熊猫数据框添加任何内容
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)
我有以下代码:
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)