首页 >后端开发 >Python教程 >如何根据列值列表过滤 Pandas DataFrame 行?

如何根据列值列表过滤 Pandas DataFrame 行?

Patricia Arquette
Patricia Arquette原创
2024-12-17 12:10:25212浏览

How to Filter Pandas DataFrame Rows Based on a List of Column Values?

按列表中的列值过滤 DataFrame

使用 pandas DataFrame 时,能够根据以下条件过滤行非常重要具体标准。常见场景之一是选择提供的列表中存在列值的行。

例如,考虑包含 STK_ID、STK_Name、RPT_Date 和 sales 列的 DataFrame rpt。我们可以使用 == 运算符轻松过滤特定股票 ID 的行:

rpt[rpt['STK_ID'] == '600809']

但是,如果我们想要过滤 STK_ID 列包含列表中的值(例如 ['600809)的行,该怎么办? ','600141','600329']?对列表使用 == 运算符在 pandas 中不起作用。

要实现此目的,我们可以使用 isin 方法:

stk_list = ['600809','600141','600329']
rpt[rpt['STK_ID'].isin(stk_list)]

isin 方法检查列值是否存在在提供的列表中并返回一个布尔掩码。生成的 DataFrame 将仅包含 STK_ID 值至少与列表中的一个值匹配的行。

在处理大型 DataFrame 或要过滤的值列表是动态时,此方法特别有用或经常更改。

以上是如何根据列值列表过滤 Pandas DataFrame 行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn