按列表中的列值过滤 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中文网其他相关文章!