从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' 中选择满足以下条件的值:
为了解决这个问题,我们可以使用 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中文网其他相关文章!