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

问题描述 投票:2回答:1
menu_sub= menu[menu["Trans Fat"]==0][menu["Cholesterol (% Daily Value)"]==0][menu["Cholesterol (% Daily Value)"]==0]

返回:“布尔系列键将重新索引以匹配DataFrame索引。来自ipykernel import kernelapp as 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个不同的行?

python-3.x pandas compiler-errors
1个回答
5
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.