python - 使用 bool 选择选择一个dataframe,然后提取某一列对应的值

标签 python pandas boolean-expression

示例数据框:

import pandas as pd
df = pd.DataFrame({'a': [-3, -2, 0], 'b': [-2, 2, 5], 'c': [-1, 0, 7], 'd': [1, 4, 8]})

我正在尝试做一些我希望相当简单的事情,并且在支持数据帧类的其他语言中确实是立即的,例如 R。我只想从 df< 中提取单个值,唯一需要注意的是我选择带有 bool 表达式的行(例如“a”==0),而不是使用标签。与往常一样,该列是通过标签选择的。例如,这可行,但似乎不必要地浪费:

df["c"][df["a"]==0][1] 

该指令不是直接从数据帧中提取值,而是 1) 提取 Pandas Series,2) 选择该系列中的一行,3) 选择行选择返回的数组的第二个元素! (第一个元素是索引)。它不仅看起来不必要地复杂,而且我担心对于非常大的数据帧来说它也可能很慢。

我使用 .at.iat 尝试了其他解决方案,但似乎没有任何效果。有没有更简单/更智能的方法来做到这一点?

最佳答案

您无法一次性完成此操作:

In [11]: df.loc[df["a"]==0, "c"]
Out[11]:
2    7
Name: c, dtype: int64

In [12]: df.loc[df["a"]==0, "c"].iat[0]
Out[12]: 7

关于python - 使用 bool 选择选择一个dataframe,然后提取某一列对应的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54915946/

相关文章:

python - 在 numpy 数组中找到一段 Trues

python - python字符串比较中不同种类的撇号

python - Pandas 从循环创建数据框

algorithm - 将字符串括起来,以便表达式采用给定值

python - 在Python中提取嵌套列表中的子列表

python - 解析带有 <br> 标签的 html (Python)

python - 如何使用 sphinx 和 autodoc 记录 "sub-classes"?

python - 在 Python 中获取函数的平均值

python - 如何在pandas python中使用一列(有一个项目列表)制作长格式?

sql - 这是在 SQL 中进行 bool 测试的正确方法吗?