python - 从数据框中选择行,其中列值是字符串列表
问题描述
我有一个数据框,我想根据包含字符串列表的列进行过滤。
例子:
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']
但是,这会返回一个空数据框。
我做了其他几次尝试,但似乎无法弄清楚如何按列表过滤,而且我的搜索结果倾向于提供将列表传递给过滤器的方法。
我相信它非常明显,但任何帮助将不胜感激。
谢谢
解决方案
使用应用和遮罩
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
推荐阅读
- node.js - 如何在 nodejs 中运行并行 cron 作业
- bootstrap-4 - Laravel + Bootstrap 图标
- python - 制作不同聚类的条形图
- python - How to handle a view function that returns a tuple in Flask?
- node.js - 无法在 mongodb 中使用聚合 $unwind 按日期 $sort
- unity3d - 有没有办法在 Unity 人形动画中编辑 IK 目标?
- mysql - JPA PESSIMISTIC_READ 在指定时间段内没有超时
- spring - SpringLiquibase:禁用迁移,只检查状态
- google-apps-script - 如何在谷歌表格上的自定义选定单元格上运行宏?
- android - 我在这里声明了 val,这样我就可以在所有函数中使用 val e11 但它会崩溃,为什么?