首页 > 解决方案 > 按条件过滤行并使用 python pandas 从数据框中选择多列

问题描述

如果我有以下数据框子集

       A   B   C   D   E   Date
   R0  xy  78  io  16  73  2021-03-25
   R1  xx  27  ya  80   1  2021-04-20
   R2  xx  53  ya  27  44  2021-06-20
   R3  xx  65  io  30  84  2021-08-22
   R4  xv   9  ui  62   1  2021-08-01

如何使用 panda 来获得以下数据框:

       A   B   C   Date
   R1  xx  27  ya  2021-04-20
   R2  xx  53  ya  2021-06-20

我正在考虑通过以下方式过滤列:

sbset = subset[['A','B','C', 'Date' ]]

然后过滤 A = 'XX' 和 C = 'ya' 的位置,但是对于 100 万个 obs 和 127 个变量的数据框,这需要很长时间,我可以同时执行这两个操作吗(按两个或多个变量过滤并选择更多变量)一步?

另一个问题,如果数据框将日期作为字符串,我怎样才能将格式更改为日期?

谢谢阅读。

标签: pythonpandas

解决方案


您只需要为此进行布尔运算:

mask=(df['A']=='xx') & (df['C']=='ya')

最后:-

result=df[mask]

现在,如果您打印result,您将获得所需的输出


推荐阅读