pandas - 如何过滤 Pandas 连续剧
问题描述
我有一个数据框,一个序列的元素类型是列表。像:
[A, B] [A] [A,C] [A, B, C] 列等
我用了表达
df[[ item == [A] for item in df['Column'].tolist()]]
只能过滤掉只包含A的列,但我希望[A,C]也被选中。如果我使用表达式
df[[ item for item in df['Column'].tolist() if set(item).issuperset(set([A]))]]
会报错
'int' 对象不可迭代
如何按 A 包含在列中的条件过滤数据框。谢谢。
解决方案
您可以使用apply
on Series 检查A
每个值是否存在。然后使用布尔索引来过滤数据帧。
import pandas as pd
df = pd.DataFrame({'Column': [['A', 'B'], ['A'], ['A', 'C'], ['A', 'B', 'C']]})
df_ = df[df['Column'].apply(lambda x: 'A' in x)]
print(df_)
Column
0 [A, B]
1 [A]
2 [A, C]
3 [A, B, C]
推荐阅读
- zsh - 编辑多行输入时zsh中一致的PS2提示?
- javascript - 如何定位不同窗口、相同域中的元素?
- c++ - Visual Studio 的默认工作 .clang 格式文件
- android - 如何从自定义属性中读取维度值?
- python - Python:如何从子目录导入包
- c# - 如何使用协商身份验证方法从 ASP.NET Core Web 应用程序连接到 SQL Server?
- google-apps-script - 在脚本创建的电子邮件中嵌入一个按钮
- html - 如何将导航栏品牌和导航栏与 bootstrap 5 对齐?
- html - 绝对位置使背景图像消失,我不知道为什么
- vuejs2 - 如何在nuxt,vue的fetch钩子中调用多个函数