python - "布尔系列键将重新编制索引以匹配DataFrame索引。来自ipykernel导入kernelapp作为app"

时间:2018-03-04 14:08:24

标签: python-3.x pandas compiler-errors

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

返回:"布尔系列键将重新索引以匹配DataFrame索引。来自ipykernel导入kernelapp作为app"

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

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

返回:系列的真值是不明确的。使用a.empty,a.bool(),a.item(),a.any()或a.all()。

有没有办法在一行中执行此操作?或者必须创建3个不同的行?

1 个答案:

答案 0 :(得分:5)

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

其次,你需要将你的布尔系列包装在括号中。

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

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