在python的pandas中,假设有一个DataFrame,其中一列中的值是一个字符串。
df = pd.DataFrame({'State':['California','Oregon','Washington'],\
'Cities':['Los Angeles, Oakland, San Diego','Portland, Eugene','Seattle, Spokane']})
如何选择与列中任何字符串中的一个值匹配的行?例如,如何只返回将“洛杉矶”作为其中一个城市的行?
我的第一个想法是遍历DataFrame中的每一行,然后使用字符串操作(.split(','))来分解每个字符串(对于非常大的数据集,这似乎也不高效)。但是,我不知道从那里去哪里实际选择那一行。
答案 0 :(得分:2)
根据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
请参阅docs。