我正在使用适用于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)
返回其condition
为True
的行索引数组。通常,此数组比原始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)