我在Pandas DF中有一些数据,并希望根据一些布尔条件来隔离它的特定部分。以下两行按照我的要求工作:
df['test'] = df[df.N == 30].my_variable
df['test2'] = df[df.Y >0.4].my_variable
不熟悉熊猫,然后我试着写:
df['test'] = df[df.N == 30 & df.Y >0.4].my_variable
但是这会引发以下错误:
TypeError:输入类型不支持ufunc'bitwise_and',和 输入无法安全地强制转换为任何支持的类型 根据施法规则''安全''
任何人都可以建议正确(或更好)的方式来实现我想要做的事情吗?
答案 0 :(得分:2)
如上所述,您可以用括号括起来强制使用正确的优先级:
df[(df.N == 30) & (df.Y > 0.4)].my_variable
值得一提的是,您可以使用loc
(我认为稍微清洁一点):
df.loc[(df['N'] == 30) & (df['Y'] > 0.4), 'my_variable']