如何创建一个新的 pandas 数据帧列,其中包含另一个列的内容,但前提是另一个列满足条件?

How do I create a new pandas dataframe column with the contents of another, but only if the other column meets a condition?

提问人: 提问时间:8/9/2021 最后编辑:Anurag Dabas 更新时间:8/10/2021 访问量:41

问:

我有这行代码:

df['new_column']=df['price'][df['bathrooms']>=2 and df['bathrooms']<3]

基本上,我想创建一个包含列表价格(来自列价格)的新列,但前提是浴室列包含大于或等于 2 但小于 3 的值。我收到错误

序列的真值是模棱两可的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。

如何更正此代码?

谢谢!

python-3.x pandas 数据帧 布尔逻辑

答:

0赞 Scott Boston 8/10/2021 #1

你需要适当的parathensis,你不能使用'and'来代替ampsand(&)而使用,请尝试:loc

df['new_column']=df.loc[(df['bathrooms']>=2) & (df['bathrooms']<3), 'price']
0赞 Salio 8/10/2021 #2

您可以使用以下命令: 在 pandas 中查询

df1 =df.query('bathrooms>=2 and bathrooms<3')
df1[['price']]