如何传递AttributeError:“DataFrame”对象在Python中没有属性“flant”?

2024-10-01 09:38:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python创建了空间马尔可夫矩阵,但是我得到了这个错误(AttributeError:'DataFrame'对象没有属性'flant')。我对python不熟悉,希望能帮我解决这个问题? 代码是

import numpy as np
import pysal`enter code here`
import pandas as pd
import pysal as ps

f = pd.read_csv("C:\\Users\\Yousif\\Desktop\\Spatial.MC\\updated_testdata1-36-Copy.csv")
f

pci = f[list(map(str,range(1, 1096)))]

#f = ps.open(ps.examples.get_path("usjoin36.csv"))
#f
#pci = np.array([f.by_col[str(y)] for y in range(1,1096)])

pci = pci.transpose()
rpci = pci/(pci.mean(axis=0))

#w = ps.open(ps.examples.get_path("states36.gal")).read()

w = ps.open("C:/Users/Yousif/Desktop/Spatial.MC/states-36-Copy.gal").read( )

w.transform = 'r'

sm = ps.Spatial_Markov(rpci, w, fixed=True, k=5, variable_name='rpci')
for p in sm.P:
    print(p)

enter image description here


Tags: csvimportreadasnpopenusersspatial
1条回答
网友
1楼 · 发布于 2024-10-01 09:38:20

当您传递pandas数据帧时,ps.Spatial_Markov似乎需要一个numpy数组。尝试通过修改这一行从数据帧中提取数组

pci = f[list(map(str,range(1, 1096)))].as_matrix()

更新

实际上,docs是非常具体的:

pysal.spatial_dynamics.markov.Spatial_Markov(y, w, k=4, permutations=0, fixed=False, variable_name=None)

Parameters:
- y (array) – (n,t), one row per observation, one column per state of each observation, with as many columns as time periods. ...

相关问题 更多 >