当前位置: 首页 > 知识库问答 >
问题:

“非类型”对象不可编辑-数据导入

谈灵均
2023-03-14

这里需要一些帮助来消除这个错误。这是代码-#是运行出色的原始代码,我试图适应:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa.stattools import adfuller
from genhurst import genhurst
from datetime import datetime
import pandas_datareader as pdr 


df = pdr.DataReader('BTC-USD', 'yahoo', datetime(2014,1,1), datetime(2019,10,25))

# df=pd.read_csv('inputData_USDCAD.csv')

y=df.loc[df['Adj Close']]

# y=df.loc[df['Time']==1659, 'Close']


results=adfuller(y, maxlag=1, regression='c', autolag=None)
print(results)

# Find Hurst exponent
H, pVal=genhurst(np.log(y))
print("H=%f pValue=%f" % (H, pVal))

以下是错误消息

文件“”,第14行,y=df.loc[df['Adj Close']]

文件"C:\用户\apros\Anaconda3\lib\site-包\熊猫\核心\indexing.py",第1424行,在getitem返回自己。_getitem_axis(maybe_callable,轴=轴)

文件“C:\Users\apros\Anaconda3\lib\site packages\pandas\core\index.py”,第1839行,在_getitem\u axis return self.\u getitem\u iterable(键,axis=axis)中

文件"C:\用户\apros\Anaconda3\lib\site-包\熊猫\核心\indexing.py",第1133行,_getitem_iterablekeyarr,索引器=自我。_get_listlike_indexer(键,轴,raise_missing=假)

文件“C:\Users\apros\Anaconda3\lib\site packages\pandas\core\index.py”,第1089行,类似于索引器keyarr、索引器new\u indexer=ax.\u reindex\u non\u unique(keyarr)

文件“C:\Users\apros\Anaconda3\lib\site packages\pandas\core\indexes\base.py”,第3443行,在非唯一索引器中,缺失=self.get非唯一索引器(目标)

文件"C:\用户\apros\Anaconda3\lib\site-包\熊猫\核心\索引\base.py",第4801行,在get_indexer_non_unique索引器中,缺少=自我。_engine.get_indexer_non_unique(tgt_values)

文件"pandas_libs\index.pyx",第295行,在熊猫中。_libs.index.IndexEngine.get_indexer_non_unique

TypeError:“非类型”对象不可编辑

共有2个答案

司空高义
2023-03-14

谢谢大家!!

loc方法就是问题所在,它似乎只通过应用y=df['Adj Close']起作用`

@author: Ernest
"""

# Example 2: Using ADF Test for Mean Reversion
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import statsmodels.api as sm
import pandas_datareader as pdr 
from statsmodels.tsa.stattools import adfuller
from datetime import datetime



def genhurst(z):
# =============================================================================
# calculation of Hurst exponent given log price series z
# =============================================================================
    z=pd.DataFrame(z)

    taus=np.arange(np.round(len(z)/10)).astype(int) # We cannot use tau that is of same magnitude of time series length 
    logVar=np.empty(len(taus)) # log variance

    for tau in taus:
        logVar[tau]=np.log(z.diff(tau).var(ddof=0))

    X=np.log(taus)    
    Y=logVar[:len(taus)]
    X=X[np.isfinite(logVar)]
    Y=Y[np.isfinite(logVar)]
#    pd.DataFrame(np.asmatrix([X, Y]).T).to_csv('XY.csv')

    X = sm.add_constant(X)
#    plt.scatter(X[:,1], Y) # for debug only
    model=sm.OLS(Y, X)
    results=model.fit()
    H=results.params[1]/2
    pVal=results.pvalues[1]
    return H, pVal


df = pdr.DataReader('BCH-USD', 'yahoo', datetime(2017,1,1), datetime(2019,10,25))

# df=pd.read_csv('inputData_USDCAD.csv')

y = df['Adj Close']

# y=df.loc[df['Time']==1659, 'Close']


results=adfuller(y, maxlag=1, regression='c', autolag=None)
print(results)

# Find Hurst exponent
H, pVal=genhurst(np.log(y))
print("H=%f pValue=%f" % (H, pVal))

安德烈亚斯酒店

鲍驰
2023-03-14

您的代码显示您已经从pdr中读取了您的df。DataReader.

但是这些信息太少,无法说明错误的来源。实际上,在这里,您如何阅读df的方式并不重要。

宁愿展示你的一份文件。

一个重要的细节是每列的数据类型,特别是用作标准字段(Adj Close)的数据类型。

我假设它已被读取为字符串(或其他类型),但您期望在那里使用布尔类型。

您是否应该将Adj Close列中的值与一些具体值进行比较?

还要检查您的df是否包含具有此名称的列。

 类似资料:
  • 我正在创建一个ios应用程序,它使用一个用flask python编写的服务器,当我连接到服务器注册一个用户时,我的服务器中不断出现一个“NoneType”对象不可订阅错误。py文件。基本上,我的问题是,是什么导致了这个错误,以及我如何能够修复这个错误。此外,如果有人能为我指出不同或更简单的方法的正确方向,我将不胜感激,谢谢! 这是服务器。py文件: 这是我在swft中的寄存器函数: 回溯: 这里

  • 我用的是引导https://vitalets.github.io/x-editable/index.html 这是我的html代码: javascript代码: 但是我想以编程方式更改为普通的x-editable元素,而不使用select2选项。 我尝试使用jQuery将a元素的data-type属性更改为text,但它不起作用。 还尝试: 还尝试: 但是这两个选项都不起作用。select2仍然处

  • 为什么我不能以这种方式使用引导可编辑表? 在这个小提琴https://jsfiddle.net/aleksacavic/03agu1ex/1/它的工作原理是,当单击时,表格单元格处于编辑模式。但相同的代码在我的网站上不工作?我错过了什么?如我所见,在我这边,当单击时,单元格不允许更改类,只有表线程被突出显示,其他元素(输入字段)不被创建。谢啦

  • 我有这个提琴,你可以看到,当你为价格字段输入任何值时,它的弹出提示没有定位在文本上,因为当你为名称输入值时,它的数据类型是数字 https://jsfiddle.net/6da007fm/21/ 超文本标记语言 JS 这是一种正常的行为还是有解决办法。我在我的项目网页中使用它,一行有5列,因此看起来不是很整洁。 -谢谢

  • 所以我有了这个类,我想要一个接受int的方法,并创建一个这个大小的新数组。如果我声明 这将创建一个大小为10的数组。 我试过做

  • 我试图在JavaFX中创建一个可编辑的TableView。我从2个连接的表中获取数据,所以我在TableView中使用对象。 我已经将表和列设置为可编辑,,我尝试对列的执行操作(例如,类似于textfield)。 我还没能解决这个问题。 那么,如何使包含对象的单元格可编辑呢?谢谢你的回答