Python Pandas DataFrame检查一列的值是否在另一列表中

水合物

我有一个熊猫数据框:

id         attr
1          val1
2          val1||val2
3          val1||val3
4          val3

和清单 special_val = ['val1', 'val2', 'val4']

我想过滤第一个数据框以保留其所有attr值都在列表中的行。所以我需要结果是这样的:

id     attr
1      val1                #val1 is in special_val
2      val1||val2          #both val1 and val2 are in special_val 

我正在考虑使用pandas.DataFrame.isinpandas.Series.isin但我无法提出正确的语法。你能帮忙吗?

广晃

您可以结合使用str.splitisin()以及groupby()

s = df['attr'].str.split('\|+', expand=True).stack().isin(special_val).groupby(level=0).all()
df[s]

输出:

   id        attr
0   1        val1
1   2  val1||val2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python Pandas:检查一列中的值是否存在于另一列中的行子集中

检查一列是否包含来自python pandas中另一列的数据

Pandas 基于另一列 python 获取一列中的唯一值

Pandas / Python:根据另一列中的值设置一列的值

根据另一列(Python,Pandas)中的值删除一列的重复项

Python Pandas:检查同一列中另一列的字符串中是否包含一个列中的字符串

Python Pandas:将一列的值检查为另一数据框的列

检查一列中的值是否在Python中另一列的间隔值中

Python Pandas DataFrame:查找另一列的每个唯一值的最大值

Python pandas - 为另一列中的每个不同值显示一列中记录数最多的值

Pandas/Python 检查中间值和输出值形成另一列

在Python Pandas中找到一列的最小值大于另一列的值

pandas当另一列与python中的值匹配时,只获取一列的平均值(浮动)值

Python Pandas DataFrame-如何基于另一列(日期类型)中的部分匹配来对一列中的值求和?

根据某一列过滤行,然后检查另一列的值是否在Python的特定列表中

Python Pandas在另一列的元素列表中找到一列的元素

Python Pandas分组并基于另一列排除值

如何基于python(pandas,jupyter)中的另一列值获取一列的平均值

通过 Python / Pandas 中的另一列查找 Dataframe 组列中的增加、减少

根据另一列pandas python的值在python中添加新列

Python Pandas-基于另一列中先前值的新列

根据Pandas中另一列的值添加新列(python)

Python/Pandas 如何將一列中的所有值組合成一個列表

如何从当前表中在 python pandas 中创建另一列?

Python pandas:如何通过匹配另一列中的元素来创建列表

如果值,則從另一列中獲取新列,如果沒有,則從另一列中取值 Python Pandas

Pandas Python - 如何对客户 ID 进行分组、检查一列是否包含文本以及在另一列中有相应的输出?

Python pandas:对于一列中的每个唯一值,在另一列中找到一个最小值并从另一列的值中减去它

Python Pandas,根据另一列中的值进行日期时间舍入