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

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

DDD
发布: 2024-12-02 20:45:14
原创
620 人浏览过

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中文网其他相关文章!

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