Pandas数据框在OR语句中组合了多个逻辑运算符

时间:2018-07-13 14:25:40

标签: pandas

我有一个带有日期列的熊猫数据框。

ACCTOPNDTE ACTNUM
2012-10-01  1234
2013-07-03  6666
2012-12-09  3333

我想输入一个输入年份,并返回当前会计年度(11月至10月)和上一个会计年度的所有行。 所以如果我通过2012->我想要1234 如果我过2013年,我想要:6666和3333 所以condition1:

df[df[ACCTOPNDTE ].year = $inputYear AND df[ACCTOPNDTE ].month<=10]

条件2:

df[df[ACCTOPNDTE ].year = $inputYear -1 ]

条件3:

df[df[ACCTOPNDTE ].year = $inputYear -2  AND df[ACCTOPNDTE ].month > 10]

如何在OR语句中结合这三个条件,我似乎无法弄清楚语法。

1 个答案:

答案 0 :(得分:0)

dt.yeardt.month一起使用,对于bitwise AND使用&,对于bitwise OR |

m1 = (df['ACCTOPNDTE'].dt.year == inputYear) & (df['ACCTOPNDTE'].dt.month <= 10)
m2 = (df['ACCTOPNDTE'].dt.year == inputYear - 1)
m3 = (df['ACCTOPNDTE'].dt.year == inputYear - 2) & (df['ACCTOPNDTE'].dt.month > 10)

df = df[m1 | m2 | m3]