pandas DataFrame按数组中的元素选择

时间:2017-03-17 12:51:19

标签: pandas dataframe

尝试根据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选择的其他选项?

1 个答案:

答案 0 :(得分:0)

如果需要使用过滤器boolean indexing,则需要apply in作为布尔掩码:

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]