首页 >后端开发 >Python教程 >如何从具有多个复杂条件的 Pandas DataFrame 中高效选择数据?

如何从具有多个复杂条件的 Pandas DataFrame 中高效选择数据?

DDD
DDD原创
2024-12-02 20:45:14616浏览

How to Efficiently Select Data from a Pandas DataFrame with Multiple Complex Criteria?

从 Pandas.DataFrame 中使用复杂标准进行选择

数据操作任务中经常会出现具有多个条件的复杂选择标准。 Pandas 提供了有效处理这些场景的方法和习惯用法。

示例:

考虑以下 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。

解决方案:

我们可以应用列运算来获得布尔系列每个条件的对象:

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

或等效地:

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

这些布尔系列可以用于索引到 DataFrame:

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

或者使用 .loc:

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

注意:

对于写访问,建议使用.loc而不是链接索引,因为后者可能会产生视图而不是副本,从而导致潜在的问题。

以上是如何从具有多个复杂条件的 Pandas DataFrame 中高效选择数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

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