首页 > 解决方案 > 如何有效地基于过滤获取单元格的值

问题描述

如果我有一个数据框并希望根据条件/过滤器获得单元格的值,它似乎不是单行指令。

在下面的示例中,我不知道开头的索引,所以我需要过滤然后请求索引并应用它。

有没有一种更简单的方法可以在不预先知道索引的情况下获得价值。

在此处输入图像描述

编辑:简单地说我想要列“No”所在行的“Category”列的值。具有值“P1”。

标签: pandas

解决方案


您可以使用DataFrame.loc指定条件和列名:

out = dfn.loc[dfn['No.'] == 'P1', 'Category']

然后outSeries,具有一个或多个值,如果没有匹配则为空Series

如果需要标量的第一个值out

scalar = out.iat[0]

但是,如果为空系列,则会失败:

out = dfn.loc[dfn['No.'] == 'aaaa', 'Category']

然后使用:

scalar = next(iter(out), 'no match')

推荐阅读