Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python指定/计算布尔列的位置_Python_Pandas - Fatal编程技术网

Python指定/计算布尔列的位置

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

我有一个数据框,我正在尝试添加一些根据现有列计算的附加列。我希望这些栏目是布尔型的,但我似乎无法得到分配和在哪里玩好布尔型。我很乐意使用任何其他类型-例如字符串或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))


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(…)