2016-03-15 22 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

相關問題