2016-03-15 24 views
1

在python的熊猫中,假设有一个DataFrame,其中一列中的值是一个字符串。选择与列中某个字符串中的值匹配的行

df = pd.DataFrame({'State':['California','Oregon','Washington'],\ 
    'Cities':['Los Angeles, Oakland, San Diego','Portland, Eugene','Seattle, Spokane']}) 

如何选择与列中任何字符串中的一个值匹配的行?例如,如何才能将“洛杉矶”作为城市之一返回?我的第一个想法是遍历DataFrame中的每一行,然后使用字符串操作(.split(','))分解每个字符串(对于非常大的数据集,这看起来效率也不高)。但是,我不确定该从哪里去实际选择该行。

+1

'df [df.Cities =='Los Angeles']'将得到只有一个城市的行。 'df [df.Cities.str.contains('Los Angeles')]'会得到LA是行的一部分(或整个字符串)的行。这个的基础是布尔索引,这在文档中有很好的文档。 –

回答

1

从伍迪傲慢的评论下面:

为了得到一个城市:

df[df.Cities == 'Los Angeles'] 

>>> 
Empty DataFrame 
Columns: [Cities, State] 
Index: [] 

对于含有潜在的多个城市的字符串:

df[df.Cities.str.contains('Los Angeles')] 

>>>        
          Cities  State 
0 Los Angeles, Oakland, San Diego California 

docs

相关问题