我有一个函数,我将迭代查找浮点数的第一个实例,然后打印'我们获利“。在下面的情况下,我想从WAP列找到8.49并停止查看。我收到错误消息: for x in profit_Price: TypeError:'numpy.float64'对象不可迭代
profit_Price = round((Wap_price * 0.020) + Wap_price,2)
def profit_stop(x):
for x in profit_Price:
if x == 8.49:
print('we hit profit')
else:
return x
#calls the above function 'profit_stop'
df['WAP'].apply(profit_stop)
答案 0 :(得分:2)
如果你的目的是比较,你不应该担心停止(除非你的DataFrame
真的很大)。 pandas
依赖于numpy
比较,这种比较非常有效,并且比Python for
循环运行得更快。
运行df['WAP'] == 8.49
或np.close(df['WAP'], 8.49)
将为True
中的每个元素返回一个布尔数组(False
/ series
)。您可以使用它来过滤series
以获取所需的值:
df[np.close(df['WAP'], 8.49)]
这将返回仅包含WAP为8.49的行的DataFrame
。
答案 1 :(得分:0)
.controller('TableController', ['$rootScope', '$scope', '$http', 'Table', '$stateParams', '$filter', '$window',
function ($rootScope, $scope,$http, Table, $stateParams, $filter, $window) {
$scope.filterState = 'All';
$scope.getState = function(value){
$scope.filterState = value.state;
$scope.FilterStateFunction = {
State: value.state
};
var param = value.state;
alert(param); //it does alert 'New York'
$rootScope.$emit("CallParentMethod", function(param){});
}
])
这应该在接近8.49时停止。