从 esda.Moran 获取“AttributeError: 'numpy.ndarray' 对象没有属性 'transform'”

问题描述

试图得到 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 (将#修改为@)