Python指定/计算布尔列的位置
我有一个数据框,我正在尝试添加一些根据现有列计算的附加列。我希望这些栏目是布尔型的,但我似乎无法得到分配和在哪里玩好布尔型。我很乐意使用任何其他类型-例如字符串或int-但它们给了我同样的问题Python指定/计算布尔列的位置,python,pandas,Python,Pandas,我有一个数据框,我正在尝试添加一些根据现有列计算的附加列。我希望这些栏目是布尔型的,但我似乎无法得到分配和在哪里玩好布尔型。我很乐意使用任何其他类型-例如字符串或int-但它们给了我同样的问题 import pandas as pd df = pd.DataFrame({"A": [1,2,3], "B": [2,3,4]}) print(df) df.assign(computed_column01=(True).where(a==1 and b==2, False)) Attr
import pandas as pd
df = pd.DataFrame({"A": [1,2,3], "B": [2,3,4]})
print(df)
df.assign(computed_column01=(True).where(a==1 and b==2, False))
AttributeError: 'bool' object has no attribute 'where'
如能就实现这一目标的正确方法提供任何指导,我们将不胜感激
干杯
David不确定这是否是您需要的,但您可以试试这样的
df['BOOL_both>2'] = (df.A > 2) & (df.B > 2)
谢谢你的回复。我和你一起去的
import pandas as pd
df = pd.DataFrame({"A": [1,2,3], "B": [2,3,4]})
df['computed_column01'] = ((df.A == 1) & (df.B == 2))
print(df)
A B computed_column01
0 1 2 True
1 2 3 False
2 3 4 False
根据瓦沙利和W00lf的建议
有趣的是,我无法获得assign方法来创建列。无论我尝试了什么,语句都没有失败,但当我打印数据帧时,它不包含项
import pandas as pd
import numpy as np
df = pd.DataFrame({"A": [1,2,3], "B": [2,3,4]})
df.assign(computed_column01=np.where((df.A==1) & (df.B==2), True, False))
print(df)
A B
0 1 2
1 2 3
2 3 4
我猜这意味着我误解了什么…
np.where((df.A==1)和(df.B==2),True,False)
df['computed_column01']=((df.A==1)和(df.B==2))df.assign
返回一个带有赋值结果的新数据帧。在您的情况下,忽略返回值。要捕获作业,只需执行df=df.assign(…)