为了账号安全,请及时绑定邮箱和手机立即绑定

Panda DataFrame Row Items 如果比较没有返回正确的结果

Panda DataFrame Row Items 如果比较没有返回正确的结果

HUWWW 2021-11-30 10:37:54
我从 quandl 检索数据并将其加载到 Pandas DF 对象。然后我根据“最后价格”计算 SMA 值(SMA21、SMA55)。将这些 SMA 值作为一列添加到我的 DF 对象中。我遍历 DF 以捕捉买入信号。我知道购买条件适用于某些日期,但我的代码没有打印出任何内容。我希望至少打印购买条件。如下所示,您可以看到以下情况:kitem['SMA21'] >= kitem['Last'] 我的代码:import requests import pandas as pdimport jsonclass URL_Params:    def __init__ (self, endPoint, symboll, startDate, endDate, apiKey):        self.endPoint = endPoint        self.symboll = symboll        self.startDate = startDate        self.endDate = endDate        self.apiKey = apiKey    def createURL (self):        return self.endPoint + self.symboll + '?start_date=' + self.startDate + '&end_date=' + self.endDate + '&api_key=' + self.apiKey    def add_url(self, _url):        self.url_listmy_portfolio = {'BTC':1.0, 'XRP':0, 'DSH':0, 'XMR':0, 'TotalBTCValue':1.0}_endPoint = 'https://www.quandl.com/api/v3/datasets/BITFINEX/'_symbolls = ['BTCEUR','XRPBTC','DSHBTC','IOTBTC','XMRBTC']_startDate = '2017-01-01'_endDate = '2019-03-01'_apiKey = '' #needs to be set for quandlmy_data = {}my_conns = {}my_col_names =  ['Date', 'High', 'Low', 'Mid', 'Last', 'Bid', 'Ask', 'Volume']orderbook = []#create connection and load data for each pair/market.#load them in a dict for later usefor idx_symbol in _symbolls:    my_url_params = URL_Params(_endPoint,idx_symbol,_startDate,_endDate,_apiKey)    response = requests.get(my_url_params.createURL())    my_data[idx_symbol] = json.loads(response.text)#Prepare Datamy_raw_data_df_xrpbtc = pd.DataFrame(my_data['XRPBTC']['dataset']['data'], columns= my_data['XRPBTC']['dataset']['column_names'])#Set Index to Date Column and Sortmy_raw_data_df_xrpbtc['Date'] = pd.to_datetime(my_raw_data_df_xrpbtc['Date'])my_raw_data_df_xrpbtc.index = my_raw_data_df_xrpbtc['Date']my_raw_data_df_xrpbtc = my_raw_data_df_xrpbtc.sort_index()我知道有很多行是正确的,但我的代码从未进入此代码路径,因此它不会打印出我期望的内容。任何人都可以请帮助/评论可能有什么问题吗?
查看完整描述

1 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

原因是你的比较是错误的。的结果kitem['SMA21'] >= kitem['Last']将是numpy.bool_. 当您is用来将它与Truethis进行比较时会失败,因为它不是同一个对象。

如果您将比较更改为==它会按预期工作:

if (kitem['SMA21'] >= kitem['Last']) == True:


查看完整回答
反对 回复 2021-11-30
  • 1 回答
  • 0 关注
  • 182 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信