简体   繁体   English

Select 来自 dataframe 的行,其中列值是字符串列表

[英]Select rows from dataframe where column values are lists of strings

I have a dataframe which I want to filter based on a column that contains lists of strings.我有一个 dataframe 我想根据包含字符串列表的列进行过滤。

example:例子:

df["artists"].head()

0    ['Sergei Rachmaninoff', 'James Levine', 'Berli...
1                                       ['Dennis Day']
2    ['KHP Kridhamardawa Karaton Ngayogyakarta Hadi...
3                                     ['Frank Parker']
4                                       ['Phil Regan']
Name: artists, dtype: object

                 

I would like to do something along the lines of我想做一些类似的事情

df[df['artists'] == 'Dennis Day']

However this returns an empty dataframe.但是,这会返回一个空的 dataframe。

Ive made several other attempts but cant seem to figure out how to filter by lists, and my search results tend to give ways of passing a list into a filter.我已经做了几次其他尝试,但似乎无法弄清楚如何按列表进行过滤,而且我的搜索结果倾向于提供将列表传递给过滤器的方法。

Im sure its pretty obvious but any help would be much appreciated.我相信它非常明显,但任何帮助将不胜感激。

Thanks谢谢

use apply and mask使用应用和遮罩

import pandas as pd
df= pd.DataFrame(columns=["artists"])
df.loc[0,"artists"] =   ['Frank Parker','Dennis Day']
df.loc[1,"artists"] =  ['Sergei Rachmaninoff', 'James Levine']

mask = df.artists.apply(lambda row:'Dennis Day' in row)
df = df[mask]
df

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM