Python - "布尔序列键将被重新索引以匹配数据框索引。从ipykernel导入kernelapp作为应用程序"

5
menu_sub= menu[menu["Trans Fat"]==0][menu["Cholesterol (% Daily Value)"]==0][menu["Cholesterol (% Daily Value)"]==0]

返回结果: "布尔序列键将重新索引以匹配数据框索引。from ipykernel import kernelapp as app"

在寻找解决方案后,有人建议我使用'&',但是使用后我得到了另一个错误。

menu_sub= menu[menu["Trans Fat"]==0 & menu["Cholesterol (% Daily Value)"]==0 & menu["Cholesterol (% Daily Value)"]==0]     

返回值:Series的真值是不明确的。请使用a.empty、a.bool()、a.item()、a.any()或a.all()。

是否有一种方法可以在一行中完成这个操作?还是必须创建3个不同的行?

1个回答

11

首先,您正在进行链式布尔切片,其中布尔系列是基于原始序列进行切片的,并且您所链接的切片不断变小。

其次,您需要将布尔系列用括号括起来。

menu_sub= menu[
    (menu["Trans Fat"] == 0) &
    (menu["Cholesterol (% Daily Value)"] == 0) &
    (menu["Cholesterol (% Daily Value)"] == 0)
]     

但是现在你可以看到你重复了一个条件,这一点我不理解。


这正是我所需要的,谢谢!至于重复条件...那是我打字时的错误,这里需要另一个条件...还是感谢您的帮助,我只是找不到解决办法。 - Mark Wekking
如果这个/任何答案对您有帮助,为了未来读者的利益,请点赞或接受答案。请参见:https://stackoverflow.com/help/why-vote @MarkWekking - Moshe Slavin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接