需要一些帮助来消除此错误。这是代码-#是运行出色的原始代码,我尝试进行调整:
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:\ Users \ apros \ Anaconda3 \ lib \ site-packages \ pandas \ core \ indexing.py”, 第1424行,在 getitem 返回self._getitem_axis(maybe_callable,axis = axis)
文件 “ C:\ Users \ apros \ Anaconda3 \ lib \ site-packages \ pandas \ core \ indexing.py”, 第1839行,在_getitem_axis中 返回self._getitem_iterable(key,axis = axis)
文件 “ C:\ Users \ apros \ Anaconda3 \ lib \ site-packages \ pandas \ core \ indexing.py”, 第1133行,在_getitem_iterable中 keyarr,indexer = self._get_listlike_indexer(key,axis,raise_missing = False)
文件 “ C:\ Users \ apros \ Anaconda3 \ lib \ site-packages \ pandas \ core \ indexing.py”, 第1089行,在_get_listlike_indexer中 keyarr,索引器,new_indexer = ax._reindex_non_unique(keyarr)
文件 “ C:\ Users \ apros \ Anaconda3 \ lib \ site-packages \ pandas \ core \ indexes \ base.py”, 第3443行,在_reindex_non_unique中 索引器,缺少= self.get_indexer_non_unique(target)
文件 “ C:\ Users \ apros \ Anaconda3 \ lib \ site-packages \ pandas \ core \ indexes \ base.py”, get_indexer_non_unique中的第4801行 索引器,缺少= self._engine.get_indexer_non_unique(tgt_values)
文件“ pandas_libs \ index.pyx”,第295行,在 pandas._libs.index.IndexEngine.get_indexer_non_unique
TypeError:“ NoneType”对象不可迭代
答案 0 :(得分:0)
您的代码显示您已经从 pdr.DataReader 中读取了 df 。
但这是很少的信息,无法说明您的错误来源。 实际上,这里阅读 df 的方式非常重要。
而是显示您的 df 的一部分。
一个重要的细节也是每列的数据类型,尤其是 用作条件字段( Adj Close )。
我想它已被读取为 string (或某些特殊类型), 但您希望在那里输入布尔值。
也许您应该将 Adj Close 列中的值与一些具体值进行比较?
还要检查您的 df 是否实际上包含具有此名称的列。
答案 1 :(得分:0)
谢谢你们!!
.loc方法是问题所在,它似乎只能通过应用y = df ['Adj Close']来工作”
SELECT count(u.user_id) AS nb_users
FROM Users u
LEFT JOIN (
SELECT sj.jobs_userid AS unfinished_user
FROM Scheduled_Jobs sj
LEFT JOIN Last_Update lu
ON lu.update_jobsid = sj.jobs_id
WHERE sj.status = 1
AND sj.date <= CURDATE()
AND lu.update_id IS NULL
) AS uj -- unfinished jobs
ON u.user_id = uj.unfinished_user
WHERE u.status = 1
AND uj.unfinished_user IS NULL
BR Andreas