Xe561
Xe561

Reputation: 23

pandas DataFrame selection by element in array

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

Answers (1)

jezrael
jezrael

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

Related Questions