Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 选择与列中字符串中的值匹配的行_Python_Pandas - Fatal编程技术网

Python 选择与列中字符串中的值匹配的行

Python 选择与列中字符串中的值匹配的行,python,pandas,Python,Pandas,在python的pandas中,假设有一个数据帧,其中一列中的值是字符串 df = pd.DataFrame({'State':['California','Oregon','Washington'],\ 'Cities':['Los Angeles, Oakland, San Diego','Portland, Eugene','Seattle, Spokane']}) 如何在列中的任何字符串中选择与一个值匹配的行?例如,如何仅返回将“洛杉矶”作为城市之一的行 我的第一个想法是循环

在python的pandas中,假设有一个数据帧,其中一列中的值是字符串

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是字符串的一部分(或整个字符串)的行。其基础是布尔索引,这在文档中有很好的文档记录。