对于Uni的作业,我们必须使用PySal来计算Moran的I.我找到了一个示例代码并且我会从那里开始但是我收到了错误消息"' file&# 39;对象没有属性' by_col'"
任何想法都会非常感激。数据集是纽约的文本文件和" T0_MINC" attribute是包含不同区域的家庭收入中位数的列。该脚本附在
下面import os
import pysal
import numpy as np
os.chdir = ("C:\\Users\\hsv0336\\Desktop")
wd = os.getcwd()
w = pysal.open(wd + "\\Rook.gal")
f = pysal.open(wd + "\\NewYorkData.txt")
y = np.array(f.by_col["T0_MINC"])
mi = pysal.Moran(y, w, two_tailed=False)
我正在使用的示例脚本位于" Moran"在这个链接: http://pysal.readthedocs.io/en/latest/users/tutorials/autocorrelation.html#moran-s-i
答案 0 :(得分:0)
pysal.open尝试根据扩展名和检查文件确定文件类型。 pysal.open返回的类型并不总是清晰,应使用内置类型函数进行检查。在你的情况下,它返回一个普通的python文件对象,这意味着pysal无法为你解析它。 " by_col"方法仅在PySAL将您的文件识别为DataTable时可用。
支持的DataTable类型包括带有特殊" GeoDa"的.csv,.dbf或.txt文件。头。 GeoDa标头包含第一行中的数据行和列数以及秒行中列的名称。
例如示例STL_HOM.txt数据集的前几行。其中有78个数据行和4个列。
78,4
"FIPSNO","HR8488","HR8893","HC8488"
17107,1.290722,1.624458,2
您可以将文件重新格式化为支持的DataTable类型之一,也可以编写自己的代码来解析文本文件。