Python中文
首页
教程
问答
标签
搜索
登录
注册
仅当列列表包含来自其他lis的值时才筛选行
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个数据框,其中一列是一个列表:</p> <pre><code>import pandas as pd data = [{'colA': 'ID1', 'colB': ['A', 'B', 'C']}, {'colA': 'ID2', 'colB': ['A']}, {'colA': 'ID3', 'colB': ['B']}, {'colA': 'ID4', 'colB': ['A', 'B']}, {'colA': 'ID5', 'colB': ['C', 'D']}] df = pd.DataFrame(data) df colA colB 0 ID1 [A, B, C] 1 ID2 [A] 2 ID3 [B] 3 ID4 [A, B] 4 ID5 [C, D] </code></pre> <p>我想筛选行,以便只选择那些只包含另一个列表中的值的行。但是,不应选择包含其他列表中不存在的任何值的任何行。你知道吗</p> <pre><code>valid_list = ['A', 'B'] </code></pre> <p>预期结果</p> <pre><code> colA colB 0 ID1 [A, B, C] #not selected because it contains C 1 ID2 [A] #Valid 2 ID3 [B] #Valid 3 ID4 [A, B] #Valid 4 ID5 [C, D] #Not valid - Either values not present in valid list </code></pre> <p>最终数据帧:</p> <pre><code> colA colB 0 ID2 [A] 1 ID3 [B] 2 ID4 [A, B] </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>使用<code>np.isin</code>和<code>all</code></p> <pre><code>df[df.colB.map(lambda x: np.isin(x, valid_list).all())] Out[217]: colA colB 1 ID2 [A] 2 ID3 [B] 3 ID4 [A, B] </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
Django:。是不是“超级用户”字段不起作用
6 回答
Django:'DeleteQuery'对象没有属性'add'
2 回答
Django:'ModelForm'对象没有属性
1 回答
Django:'python manage.py runserver'返回'TypeError:'WindowsPath'类型的对象没有len()
6 回答
Django:'Python管理.pysyncdb'不创建我的架构表
5 回答
Django:'Python管理.py迁移“耗时数小时(和其他奇怪的行为)
4 回答
Django:'readonly'属性在我的ModelForm上不起作用
10 回答
Django:'RegisterEmployeeView'对象没有属性'object'
3 回答
Django:'str'对象没有属性'get'
3 回答
Django:'创建' 不能被指定为Order模型表单中的值,因为它是一个不可编辑的字段
9 回答
Django:“'QuerySet'类型的对象不是JSON可序列化的”
1 回答
Django:“'utf8'编解码器无法解码位置19983中的字节0xe9:无效的连续字节”,加载临时文件时
5 回答
Django:“<…>”需要有一个字段“id”的值,然后才能使用这个manytomy关系
10 回答
Django:“AnonymousUser”对象没有“get_full_name”属性
7 回答
Django:“ascii”编解码器无法解码位置1035中的字节0xc3:序号不在范围内(128)
9 回答
Django:“BaseTable”对象不支持索引
6 回答
Django:“collections.OrderedDict”对象不可调用
3 回答
Django:“Country”对象没有属性“all”
6 回答
Django:“Data”对象没有属性“save”
5 回答
Django:“datetime”类型的对象不是JSON serializab
10 回答