2017-03-17 110 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]