首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用/定义开放数据集在SPSS中运行Python

调用/定义开放数据集在SPSS中运行Python
EN

Stack Overflow用户
提问于 2014-05-17 00:56:34
回答 1查看 139关注 0票数 0

我有这个ArcGIS python代码(使用arcpy模块),需要在SPSS中导入和运行。

python代码在ArcGIS中工作,我已经成功地将python库设置为ArcGIS x64 python目录。

我的问题是:如何调用/定义要运行计算的打开(或可以关闭)数据集?(我的当前代码在第2行“CURRENT_DATABASE_MEMORY”中定义了这一点)

下面是我在ArcGIS/Python中使用的代码。我未能成功地找到解决这个问题的办法。

代码语言:javascript
复制
import arcpy
table = "CURRENT_DATABASE_MEMORY"

valueList = [r[0] for r in arcpy.da.SearchCursor(table, ["FULL_ADDRESS"])]
valueDict = collections.Counter(valueList)
uniqueList = valueDict.keys()
uniqueList.sort() 
updateRows = arcpy.da.UpdateCursor(table, ["FULL_ADDRESS","ALL_LIVE"])
for updateRow in updateRows:
   updateRow[1] = valueDict[updateRow[0]]  
   updateRows.updateRow(updateRow)
del updateRow, updateRows


valueList = [r[0] for r in arcpy.da.SearchCursor(table, ["FULL_ADDRESS_NAME"])]
valueDict = collections.Counter(valueList)
uniqueList = valueDict.keys()
uniqueList.sort() 
updateRows = arcpy.da.UpdateCursor(table, ["FULL_ADDRESS_NAME","ALL_LIVE"])
for updateRow in updateRows:
   updateRow[1] = valueDict[updateRow[0]]  
   updateRows.updateRow(updateRow)
del updateRow, updateRows

uniqueValues = {}
values = []
newID = 0

with arcpy.da.UpdateCursor(table, ["FULL_ADDRESS_NAME","FEAT_SEQ"]) as updateRows:
    for row in updateRows:
        nameValue = row[0]
        if nameValue in uniqueValues:
            row[1] = uniqueValues[nameValue]
        else:
            newID += 1
            uniqueValues[nameValue] = newID
            row[1] = newID
        updateRows.updateRow(row)


del row, updateRows
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-18 20:54:57

除了Andy编写的内容之外,您还可以考虑使用Submit api向SPSS发出命令,通过ODBC读取数据集(假设您有该源的驱动程序),或者您可以在Python代码中直接读取数据源,对其进行操作,然后使用Python插件中为此提供的各种api将其写入SPSS。最佳选择将取决于您希望SPSS在处理这些数据中所扮演的角色。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23706566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档