Reputation: 23
Trying to select subset of df based on the occurrence of an element in an array in the 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]})
returns TypeError: unhashable type: 'numpy.ndarray'
Other options for df selection like this?
Upvotes: 2
Views: 83
Reputation: 862641
You need apply
with in
for boolean mask, if need filter use 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]
Upvotes: 1