Select 数据框中的行,其中列值是字符串列表
Select rows from dataframe where column values are lists of strings
我有一个数据框,我想根据包含字符串列表的列对其进行过滤。
示例:
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
我想做一些类似
的事情
df[df['artists'] == 'Dennis Day']
但是这 returns 一个空数据框。
我做了其他几次尝试,但似乎无法弄清楚如何按列表进行过滤,而且我的搜索结果倾向于提供将列表传递到过滤器的方法。
我相信这很明显,但我们将不胜感激。
谢谢
使用应用和掩码
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
我有一个数据框,我想根据包含字符串列表的列对其进行过滤。
示例:
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
我想做一些类似
的事情df[df['artists'] == 'Dennis Day']
但是这 returns 一个空数据框。
我做了其他几次尝试,但似乎无法弄清楚如何按列表进行过滤,而且我的搜索结果倾向于提供将列表传递到过滤器的方法。
我相信这很明显,但我们将不胜感激。
谢谢
使用应用和掩码
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