我现在有这个可以用的
df['AStrategy'] = df['Areturn'][df['BUY'] == True]
df['BStrategy'] = df['Breturn'][df['SELL'] == True]
我想添加一个条件,在这里我只会出售时,购买是虚假的如下,但它没有工作
df['AStrategy'] = df['Areturn'][df['BUY'] == True]
df['BStrategy'] = df['Breturn'][df['SELL'] == True & df['BUY'] == False]
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
为什么它不工作?
有什么建议吗?非常感谢。
如果您只检查真/假,您只需执行以下操作:
df['BStrategy'] = df['Breturn'][df['SELL'] & ~df['BUY']]
由Python的操作员优先级解释。
因为:=
比更不合适,所以您的代码不起作用
我给您的解决方案之所以有效,是因为:~x的优先级高于
import pandas as pd
import numpy as np
np.random.seed(1234)
df = pd.DataFrame({
'SELL':np.random.choice([True,False],6),
'BUY':np.random.choice([True,False],6),
'Breturn':np.random.randint(10,size=6),
})
df['BStrategy'] = df['Breturn'][df['SELL'] & ~df['BUY']]
print(df)
返回:
BUY Breturn SELL BStrategy
0 True 6 False NaN
1 False 8 False NaN
2 False 0 True 0.0
3 False 5 False NaN
4 False 0 True 0.0
5 False 9 True 9.0
df['BStrategy'] = df['Breturn'][(df['SELL'] == True) & (df['BUY'] == False)]
它应该是有效的,要应用多个过滤器,您需要括号
我想知道当我们选择就地操作数据帧(与不就地操作相比)时,内存使用是否会显著减少。 我在Stack Overflow上做了一些搜索,发现了这篇文章,其中的答案是,如果操作没有就地完成,则返回数据框的副本(我想当有一个名为“就地”的可选参数时,这有点明显: P)... 如果我不需要保留原始的数据帧,只修改数据帧是有益的(也是合乎逻辑的),对吗? 背景: 我试图在按数据框中的特定“列”排序时获取顶部元素
问题内容: 有人可以使用以下示例数据解释JavaScript Truthy和Falsy。我读过其他主题,但仍然感到困惑。 根据我的理解,我相信这是唯一的真理,而其余的都是虚假的-这是正确的吗? 问题答案: 据我了解,我相信var a = 1; 是唯一的真理,其余都是虚假的-这是正确的吗? 没有。 var a = 0; 数字零是 虚假的 。但是,请注意,字符串零是真实的。 var a = 10 ==
问题内容: 我对分配给False,True的测试值感到困惑 要检查真实值,我们只需 假怎么样? 问题答案: 从Python样式指南中: 对于序列(字符串,列表,元组),请使用空序列为假的事实。 [..] 不要使用==将布尔值与True或False进行比较。
我需要在我的mysql数据库中的表中更改列,以便列中当前为true的值更改为false,之前为false的值更改为true。 那么,在:值A:假值B:真之前 之后:值A:真值B:假 我该怎么做?试图为此编写一个液化迁移。我首先想到的是: 更新表设置列A=false,其中列A=true,设置列A=true,其中列A=false; 但我意识到,如果我首先将真值更改为假,那么所有值都将为假,然后MySQ
我对浮点数有一个基本的了解,并且正在阅读这篇文章,其中说: 0.1 0.2:这等于0.3,但在浮点数中:为false。这是因为0.1、0.2和0.3不能精确地表示在基2浮点数中。 根据浮点数的性质,这是正确的,但我编写了一个简单的程序来测试: 但是输出实际上是。以下是我的两个问题: > 我想发生的是,因为C使用了从四舍五入到五舍五入的模式,所以在四舍五入之后,它恰好是真的,我的理解正确吗? 如果我
我有两个数据帧df1和df2。df1就像一个具有以下值的字典 df2具有以下值: 我想基于df1数据帧中的,将df2拆分为3个新的数据帧。 日期,TLRA_权益栏应位于数据框 预期产出: > 数据帧 消费者,非周期性数据帧 请让我知道如何有效地做。我想做的是连接列名,例如,然后根据列名的前半部分分割数据帧。 代码: 但这很复杂。需要更好的解决方案。