首页 >后端开发 >Python教程 >如何根据复杂的多列标准选择 Pandas DataFrame 行?

如何根据复杂的多列标准选择 Pandas DataFrame 行?

DDD
DDD原创
2024-12-01 21:07:11610浏览

How to Select Pandas DataFrame Rows Based on Complex Multi-Column Criteria?

从pandas.DataFrame中选择复杂的条件

在使用Pandas进行数据分析时,我们经常需要根据复杂的条件选择特定的行或列标准。本问题演示了如何在给定“B”和“C”对应值满足特定条件的情况下从“A”列中选择值。

为了理解这个问题,让我们创建一个示例 DataFrame:

import pandas as pd
from random import randint

df = pd.DataFrame({'A': [randint(1, 9) for x in range(10)],
                   'B': [randint(1, 9)*10 for x in range(10)],
                   'C': [randint(1, 9)*100 for x in range(10)]})

现在,我们要从 'A' 中选择满足以下条件的值:

  • 对应的值'B' 应大于 50。
  • 'C' 对应的值不应等于 900。

为了解决这个问题,我们可以使用 Pandas 的列操作:

df["B"] > 50

这将创建一个布尔系列对象,其中每个元素对应于“B”中的一行,并指示相应的'B' 值大于 50。

(df["B"] > 50) & (df["C"] != 900)

这利用广播和逻辑运算符来组合布尔 Series 对象,创建一个新 Series,其中每个元素指示相应的行是否满足这两个条件。

使用这个系列作为索引,我们可以提取“A”值:

df["A"][(df["B"] > 50) & (df["C"] != 900)]

或者,使用.loc 语法:

df.loc[(df["B"] > 50) & (df["C"] != 900), "A"]

此方法有效提取满足指定条件的行,从而能够对所选数据进行进一步分析或操作。

以上是如何根据复杂的多列标准选择 Pandas DataFrame 行?的详细内容。更多信息请关注PHP中文网其他相关文章!

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