如何从列表类型为Python的列中选择具有特定字符串的行

时间:2018-07-29 19:14:24

标签: python pandas

我有一个Python数据框df,其中有几列。我想从名称为A的列中选择带有指定字符串的行,并且A的每个单元格中的数据类型为['str1','str2','str3'...]。我使用了df ['A']。str.contains('str2')],但它不起作用。我不知道问题出在哪里。我可以在进行过滤之前将列表类型转换为字符串吗?

示例:

数据框:

           A                           B       C       D 
  1  [animal,tools,new]               white   nyc      25   
  2  [Italian,restaurant,food]        black   boston   20
  3  [Italian,animal,place]           red     chicago   5
  4  [sky,temp,something]             red     island   90

我想选择A列中仅包含“动物”的行 理想的输出:

           A                           B       C       D 
  1  [animal,tools,new]               white   nyc      25
  2  [Italian,animal,place]           red     chicago   5 

1 个答案:

答案 0 :(得分:0)

我认为您可以使用in

df=pd.DataFrame({'A':[['str1','str2','str3'],['str1']]})
['str2' in x for x in df.A]
Out[28]: [True, False]