我试图查找包含特定项的非空值的行。Item\u Weight(float)和Item\u Identifier(str)都来自数据帧的不同列。
下面是生成DF的代码:
import numpy as np
import pandas as pd
df = pd.DataFrame()
np.random.seed(seed=6)
df['col0']=np.random.randn(100)
lett=['a','b','c','d']
df['col1']=np.random.choice(lett,100)
toz = np.random.randint(0,100,15)
#Randomly set some values of col0 to null.
df.loc[toz,'col0']=np.NaN
df.loc[df.loc[df['col0'].isnull()==False] & df.loc[df['col1']=='b']]
抛出类型错误:
TypeError:输入类型不支持ufunc“bitwise\u and”,并且
无法将输入安全地强制为任何受支持的类型
根据铸造规则“安全”
df.loc[(df['col0'].isnull() == False) & (df.loc[df['col1'] == 'b'])]
抛出值错误:
ValueError:操作数无法与形状一起广播
(56,) (2,)
相反,如果我查询如下:
df。loc[(df['col0]。isnull()==False)(&(df.loc[df['col1']=='b'])]
我收到另一个TypeError:
TypeError:无法在块值不受支持的情况下操作False
&的操作数类型:'“布尔”和“浮动”
我可以分别查询每个部分(col0==Null或col1==“b”)。但我不能使用&对其进行操作。是否有解决方法?我做错了什么?