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

如何通过比较列值与列表有条件地选择数据帧行[重复]

孔俊友
2023-03-14

我有以下Python列表和数据框架:

import pandas as pd

my_list = ["a", "b", "d"]

d = {'col1': [1, 2, 3, 4], 'col2': ["a", "b", "c", "d"]}
df = pd.DataFrame(data=d)
df

输出:

    col1    col2
0   1       a
1   2       b
2   3       c
3   4       d

但我只希望在数据帧中有这样的行,其中col2的值也存在于我的\u列表中。

最终输出应如下所示:

    col1    col2
0   1       a
1   2       b
2   4       d

如何在不使用for循环的情况下实现这一点?

共有2个答案

于意智
2023-03-14
df.query(f"col2 in {my_list}")
晏鸿畅
2023-03-14

您可以使用df。申请此

df[df['col2'].apply(lambda x: x in my_list)] 
 类似资料:
  • 如何根据Pandas中某个列中的值从中选择行? 在SQL中,我将使用: 我试图查看熊猫的文档,但我没有立即找到答案。

  • 我试图查看熊猫的文档,但我没有立即找到答案。

  • 问题内容: 我的问题的示例架构在SQLFiddle中给出,如下所示: 在在线游戏中,我想选择对手,该对手可以在玩家或中。 所需的示例输入/输出 也就是说,所需的数据可以在任何列中,但是我需要有条件地或以任何其他方式在单列中输出。我听说过MySQL条件列,但无法创建查询以获取所需的输出。有人可以帮助您进行必要的查询吗? 编辑 基于此链接,我运行以下查询,但失败。 问题答案: 我认为您可以使用以下语法

  • 我有两个不同大小的数据帧,我想对四个不同列中的所有值进行比较(两组) 基本上,我希望看到df1['A']==df2['A'] 我的实际数据帧要大得多(120000行数据,A列的值从1到700,B列的值从1到300),所以我知道这可能是一个更长的过程。

  • 问题内容: 我有一个名为@status的变量,该变量在此select语句之前设置: 我只想选择if列,否则我想为shipwith选择null。我该如何完成? 问题答案:

  • 下面的问题经常发生。假设我有一个dataframe,其中一列可以取一个离散值: 有没有一个简单的方法把那些行过滤掉?