基于熊猫的官方文档和有关的帮助:
pandas.DataFrame.loc
该loc允许通过标签或布尔数组访问一组行和列。 (https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.loc.html)
但是它看起来不是布尔数组真的不能工作!
import pandas as pd
data=[[30, 21],[0, 121],[4, 121]]
df= pd.DataFrame(data, columns=['Apples', 'Bananas'])
print(df.loc[df.Apples==30 & True]) # It's OK
print(df.loc[True]) # **doesn't work**
答案 0 :(得分:1)
答案在链接到的loc
docs 您中:
允许的输入为:
- [...]
- 与要切片的轴的长度相同的布尔数组,例如
[True, False, True]
。
如果掩码的长度不同,则假定您正在搜索列中的标签,但找不到该标签,则会引发KeyError
。
请注意,df.Apples == 30 & True
与df
的长度相同。
df.Apples == 30 & True
计算为
df.Apples == 0
哪个
0 False
1 True
2 False
Name: Apples, dtype: bool
因为==
的优先级低于&
。参见Operator Precedence。