问题描述
试图得到 Moran 的 I. 一个测试,但由于最后一行代码,得到“AttributeError: 'numpy.ndarray' object has no attribute 'transform'”。这两个变量都是数组,它们看起来像这样:
0 1024.798431
1 859.662720
2 870.632530
3 819.316065
4 930.600992
...
5567 842.415062
5568 991.513211
5569 908.701993
5570 909.431369
5571 644.946254
Name: Auxilio,Length: 5572,dtype: float64
peso_espacial:
array([876.56886196,815.34772578,871.227145,...,903.74618016,880.30363602,885.61222452])
代码是这样的:
mun = geobr.read_municipality(code_muni="all",year=2019)
mun = mun.rename(columns={'code_muni': 'Municipio'})
mun['Municipio'] = mun['Municipio'].astype(int).astype(str).str[:-1].astype(np.int64)
impacto2020 = pd.read_excel(path)
mapa = pd.merge(mun,impacto2020,on='Municipio',how='left')
qW = ps.lib.weights.Queen.from_dataframe(mapa)
qW.transform = 'r'
peso_espacial = lp.weights.lag_spatial(qW,mapa['Auxilio'])
peso_espacial = np.nan_to_num(peso_espacial)
auxilio = mapa['Auxilio']
from esda.moran import Moran
moran = Moran(auxilio,peso_espacial)
不知道如何修复它,已经尝试将其转换为系列,但它得到了几乎相同的 AttributeError。这应该返回一个介于 0 和 1 之间的数字。
完整的错误回溯:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-63-e8e3103abd6b> in <module>
1 from esda.moran import Moran
----> 2 moran = Moran(auxilio,peso_espacial)
/opt/anaconda3/lib/python3.8/site-packages/esda/moran.py in __init__(self,y,w,transformation,permutations,two_tailed)
159 y = np.asarray(y).flatten()
160 self.y = y
--> 161 w.transform = transformation
162 self.w = w
163 self.permutations = permutations
AttributeError: 'numpy.ndarray' object has no attribute 'transform'
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)