2017-03-17 113 views
1

尝试根据df中数组中元素的出现来选择df的子集。熊猫按数组中的元素选择数据框

df = pd.DataFrame() 
vals = [] 
for i in range(3): 
    vals.append(np.linspace(0,1,i+1)) 
df['vals']=vals 

df.isin({'vals':[0.5]}) 

回报TypeError: unhashable type: 'numpy.ndarray'

为DF选择像这样的其他选项?

回答

0

您需要applyin布尔面膜,如果需要过滤器的使用boolean indexing

print (df.vals.apply(lambda x: 0.5 in x)) 
0 False 
1 False 
2  True 
Name: vals, dtype: bool 

print (df[df.vals.apply(lambda x: 0.5 in x)]) 
       vals 
2 [0.0, 0.5, 1.0]