首页 > 后端开发 > Python教程 > 如何根据多个值对 Pandas DataFrame 进行子集化?

如何根据多个值对 Pandas DataFrame 进行子集化?

Barbara Streisand
发布: 2024-12-16 20:37:24
原创
210 人浏览过

How to Subset a Pandas DataFrame Based on Multiple Values?

基于多个值对 Pandas DataFrame 进行子集化

在 Pandas 中,根据特定值对 DataFrame 进行子集化非常简单,如以下示例所示:

import pandas as pd

# Dataframe initialization
df = pd.DataFrame({'A': [5, 6, 3, 4], 'B': [1, 2, 3, 5]})

# Subset based on a single value
x = df[df['A'] == 3]
登录后复制

但是,在选择与值列表匹配的行时会出现挑战。考虑以下用例:

# List of values to filter on
list_of_values = [3, 6]

# Subset attempt (incorrect syntax)
y = df[df['A'] in list_of_values]
登录后复制

此语法将导致错误,因为 Pandas 需要稍微不同的语法来基于多个值进行子集。

解决方案:使用 isin()方法

基于值列表对 DataFrame 进行子集化的正确方法是使用 isin() 方法。下面是更正后的代码:

y = df[df['A'].isin(list_of_values)]
登录后复制

输出:

     A  B
1    6  2
2    3  3
登录后复制

isin() 方法采用值列表或数组作为输入,并返回包含指定列匹配的行的 DataFrame输入中的任何值。

反向选择

选择列值不匹配的行提供的列表中,您可以将 ~ 运算符与 isin() 结合使用。例如:

# Inverse subset
z = df[~df['A'].isin(list_of_values)]
登录后复制

输出:

   A  B
0  5  1
3  4  5
登录后复制

以上是如何根据多个值对 Pandas DataFrame 进行子集化?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板