当前位置: 首页 > 知识库问答 >
问题:

熊猫根据布尔条件选择行和列

壤驷棋
2023-03-14

我有一个熊猫数据框,大约有50列和

共有1个答案

哈沛
2023-03-14

让我们把你的问题分解一下。你想

  1. 基于某些布尔条件筛选行
  2. 您希望从结果中选择列的子集

对于第一点,您需要的条件是-

df["col_z"] < m

对于第二个需求,您需要指定所需列的列表-

["col_x", "col_y"]

您将如何结合这两种方法来生产熊猫的预期产量?最直接的方法是使用loc-

df.loc[df["col_z"] < m, ["col_x", "col_y"]]

第一个参数选择行,第二个参数选择列。

有关loc

从关系代数运算——选择和投影的角度来考虑这一点。如果您来自SQL世界,这将是一个相关的等价物。在SQL语法中,上面的操作如下所示-

SELECT col_x, col_y     # projection on columns
FROM df
WHERE col_z < m         # selection on rows

熊猫loc允许您为选择行指定索引标签。例如,如果你有一个数据框-

   col_x  col_y
a      1      4
b      2      5
c      3      6

要选择索引a,和c,以及col\u x,您将使用-

df.loc[['a', 'c'], ['col_x']]

   col_x
a      1
c      3

或者,通过布尔条件进行选择(如原始问题所述,使用一系列的bool值),其中col_x中的所有值都是奇数-

df.loc[(df.col_x % 2).ne(0), ['col_y']]

   col_y
a      4
c      6

有关详细信息,df.col_x%2计算每个值相对于2的模数。ne(0)然后将该值与0进行比较,如果不是,则返回True(所有奇数都是这样选择的)。下面是这个表达式的结果-

(df.col_x % 2).ne(0)

a     True
b    False
c     True
Name: col_x, dtype: bool

进一步阅读

  • 10分钟到熊猫-通过标签选择
  • 索引和选择数据
    • 布尔索引

 类似资料:
  • 问题内容: 我有以下数据框 基本上我可以如下过滤行 我可以如下所示删除/删除一行 但是我想根据条件删除一定数量的行,我该怎么做? 问题答案: 最好的是但需要反转条件-使所有值相等且更高,如下所示: 与功能相同: 另一种可能的解决方案是通过以下方法反转掩码:

  • 我有一个数据框架: 和一本参考词典: 我的目标是将所有出现的< code > replacement _ dict[' X1 ']替换为' X1 ',然后将这些行合并在一起。例如,“x1”、“x2”、“x3”或“x4”的任何实例都将被替换为“X1”等。 我可以通过选择包含任何这些字符串的行并将其替换为“X1”来实现这一点: 给予: 现在,如果我选择所有包含“X1”的行并将它们合并,我将得到: 因此

  • 我必须解决这个问题:目标:删除大多数行缺少输入的列:1。数据帧df:数据帧2。阈值:确定将删除哪些列。如果阈值为.9,则缺少90%值的列将被丢弃:1。带删除列的数据帧df(如果未删除任何列,则返回相同的数据帧) Excel文档截图 我编码了这个: 我必须有“自我、博士和阈值”,不能添加更多。代码必须通过下面的测试用例: 当我运行VT.drop_nan_col(df,0.9). head()时,我不

  • 问题内容: 我有一个名为@status的变量,该变量在此select语句之前设置: 我只想选择if列,否则我想为shipwith选择null。我该如何完成? 问题答案:

  • 我在看这个和这个线索,虽然我的问题没有那么不同,但有一些不同。我有一个满是

  • 当工作与熊猫Dataframe对象和使用条件选择从DataFrame它给出了一个错误如下,而我看到通过一些视频在木星笔记本上相同的作品。 然而,它清楚地说明了下面的错误,但我没有找到解决方法,即使我在各种SO帖子上搜索过,但没有得到相同的错误解决方案 TypeError:' 下面是我在puthon3.6中使用的代码内容。 任何帮助或方向都非常感谢,而我仍然在寻找自己。