我正在使用适用于Python的Pandas库进行一些加密货币分析。我产生了以下数据框:

        coin    old_price      current_price
0     BNBBTC    0.000949            0.000994
1     BNBETH    0.011472            0.012129
2    BNBUSDT   10.938950            9.358000
3     VENBNB    0.619480            0.635200


然后,我尝试比较两列old_price和current_price。

使用以下代码行后:

comparison['sell'] = np.where((comparison['current_price'] >= comparison['old_price']))


我收到一条错误消息,指出:

"ValueError: Length of values does not match length of index"


据我所知,该数据框每列具有相同数量的数据。请告知,将不胜感激。

最佳答案

不带第二和第三个可选参数的np.where(condition)返回其conditionTrue的行索引数组。通常,此数组比原始DataFrame短(在您的情况下,它只有一个值):

np.where(comparison['current_price'] >= comparison['old_price'])
#(array([2]),)


您可能需要的是:

comparison['sell'] = (comparison['current_price'] >= comparison['old_price'])
#array([False, False,  True, False], dtype=bool)

10-08 17:52