2017-10-12 47 views
1

我正试图搜索其中包含列表中的字符串的row在包含列表中的字符串的数据框中搜索一行

df

  Column1   Out1 
0   ['x', 'y']   (0, 2) 
1   ['a', 'b']   (3, 0) 
etc. 

我尝试以下,以搜索包含'a'Column1list在列,如this回答提示:

print df['Column1'].isin(['a']) 

随着预期的这样一个结果:

1   ['a', 'b']   (3, 0) 

但是,我似乎收到以下错误:

TypeError: unhashable type: 'list' 

回答

2

极品in的检查值列表:

df = df[df['Column1'].apply(lambda x: 'a' in x)] 

样品:

df = pd.DataFrame({'Column1':[['x','y'], ['a','b']], 
        'Out1':[(0,2), (3,0)]}) 
print (df) 
    Column1 Out1 
0 [x, y] (0, 2) 
1 [a, b] (3, 0) 

df1 = df[df['Column1'].apply(lambda x: 'a' in x)] 
print (df1) 
    Column1 Out1 
1 [a, b] (3, 0) 

df1 = df[['a' in x for x in df['Column1']]] 
print (df1) 
    Column1 Out1 
1 [a, b] (3, 0) 
+0

太棒了。再次感谢! ;) – LearningToPython

+0

以任何方式优于另一个? – LearningToPython

+1

难以解决的问题,其次应该快一点,但如果NaNs失败。 – jezrael

相关问题