Python 选择与列中字符串中的值匹配的行
在python的pandas中,假设有一个数据帧,其中一列中的值是字符串Python 选择与列中字符串中的值匹配的行,python,pandas,Python,Pandas,在python的pandas中,假设有一个数据帧,其中一列中的值是字符串 df = pd.DataFrame({'State':['California','Oregon','Washington'],\ 'Cities':['Los Angeles, Oakland, San Diego','Portland, Eugene','Seattle, Spokane']}) 如何在列中的任何字符串中选择与一个值匹配的行?例如,如何仅返回将“洛杉矶”作为城市之一的行 我的第一个想法是循环
df = pd.DataFrame({'State':['California','Oregon','Washington'],\
'Cities':['Los Angeles, Oakland, San Diego','Portland, Eugene','Seattle, Spokane']})
如何在列中的任何字符串中选择与一个值匹配的行?例如,如何仅返回将“洛杉矶”作为城市之一的行
我的第一个想法是循环遍历数据帧中的每一行,然后使用字符串操作(.split(“,”)来分解每个字符串(对于非常大的数据集,这似乎也不太有效)。但是,我不确定从那里去哪里真正选择那一行。下面是Woody Pride的评论: 获取一个城市:
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
对于可能包含多个城市的字符串:
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
请参阅。
df[df.Cities=='Los Angeles']
将在只有一个城市的位置获取行df[df.Cities.str.contains('Los Angeles')]
将获取LA是字符串的一部分(或整个字符串)的行。其基础是布尔索引,这在文档中有很好的文档记录。