当前位置: 首页 > 知识库问答 >
问题:

筛选Pandas DataFrame中的元素列表[重复]

白驰
2023-03-14

我有一个包含值和附加信息的数据框架。我希望能够提取只属于一种信息的值。我不知道会预先查询哪些值和多少值。所以,有可能只调用一次带有附加信息“foo”的值,有时使用附加信息“bar”和“baz”,所以使用简化的数据帧

import pandas as pd
df = pd.DataFrame(
    [[1, 'foo'], [2, 'bar'], [3, 'baz']], columns=['value', 'id'])

我试过了

result = df[df.id in ['foo', 'bar']]

但是我得到了一个ValueError:级数的真值是模糊的。使用a.empty、a.bool()、a.item()、a.any()或a.all()。但是我无法使用any()-函数来给出结果。

共有1个答案

林烨烨
2023-03-14

使用isin针对传入列表测试列的成员资格:

In [30]:
df[df['id'].isin(['foo','bar'])]

Out[30]:
   value   id
0      1  foo
1      2  bar

在这里,isin生成一个布尔掩码,我们使用它来过滤df:

In [31]:    
df['id'].isin(['foo','bar'])

Out[31]:
0     True
1     True
2    False
Name: id, dtype: bool
 类似资料:
  • 我有一个包含元素的ArrayList(字段是name和type)。只有两种不同的可能类型(“edu”和“ent”),我希望每个类型都显示在自己的listview中。 我的想法是创建两个具有相同数据的新ArrayList,然后循环遍历每个并过滤不需要的元素,如下所示: ArrayList中有10个元素,每种类型5个。 问题是,在两个列表视图的末尾,有4个相同的项目以混合类型显示。 知道我做错了什么吗

  • 我有一系列的动物arr=[‘猫’、‘狗’、‘大象’、‘狮子’、‘老虎’、‘老鼠’] 我想写一个函数remove(['dog','lion']),它可以从arr中删除元素,并返回一个新的数组,什么是最佳解决方案? 例子: arr应改为 注:无突变

  • 我想通过列表中的第一个元素进行过滤,然后通过第二个元素进行分组。 在使用Java Stream获得平均值之前,我过滤了第一个元素,即index。这样做合适吗?

  • 这应该非常容易,但我无法让它工作。 我想根据两个或多个值筛选数据集。 这是否必须是一个或声明?我可以在SQL中使用?

  • 我想要一个列表,它是列表元素列表的组合,例如:我的输入 输出应该是 非常感谢您的帮助。

  • 问题内容: 给出以下列表: 我想将[a]的每个元素重复其在[b]中的对应位置的编号,以产生此结果: 即0发生1次,5发生2次,1发生1次。 问题答案: 内容如下: -重复elem次 从两个列表中组成一个2元组的列表,将每个元素与另一个列表中的对应元素配对。这为您提供了用例中需要传递给的确切信息。 -将迭代器的结果列表展平为单个值列表。您既可以像我一样,也可以像马丁·彼得斯那样。