python - "布尔系列键将重新索引以匹配DataFrame索引.来自ipykernel import kernelapp as app"

Mar*_*ing 3 compiler-errors python-3.x pandas

menu_sub= menu[menu["Trans Fat"]==0][menu["Cholesterol (% Daily Value)"]==0][menu["Cholesterol (% Daily Value)"]==0]
Run Code Online (Sandbox Code Playgroud)

返回:"布尔系列键将重新索引以匹配DataFrame索引.来自ipykernel import kernelapp as app"

在搜索解决方案后,人们建议我使用'&',但在使用之后我收到了其他错误..

menu_sub= menu[menu["Trans Fat"]==0 & menu["Cholesterol (% Daily Value)"]==0 & menu["Cholesterol (% Daily Value)"]==0]     
Run Code Online (Sandbox Code Playgroud)

返回:系列的真值是模糊的.使用a.empty,a.bool(),a.item(),a.any()或a.all().

有没有办法在一行中做到这一点?或者必须创建3个不同的行?

piR*_*red 6

首先你是链式布尔切片,你正在切片的布尔系列是基于原始的,你链接的切片不断变小.

其次,您需要将布尔系列包装在括号中.

menu_sub= menu[
    (menu["Trans Fat"] == 0) &
    (menu["Cholesterol (% Daily Value)"] == 0) &
    (menu["Cholesterol (% Daily Value)"] == 0)
]     
Run Code Online (Sandbox Code Playgroud)

但现在你可以看到你重复一次两次,我不明白.