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

Pandas 数据帧在OR语句中组合多个逻辑运算符,pandas,Pandas,我有一个带有日期列的数据框 ACCTOPNDTE ACTNUM 2012-10-01 1234 2013-07-03 6666 2012-12-09 3333 我想传入一个输入年度,并返回当前会计年度(11月-10月)和上一个会计年度的所有行。 因此,如果我通过2012-->我想要1234 如果我通过2013,我想要:6666和3333 因此,条件1: df[df[ACCTOPNDTE ].year = $inputYear AND df[ACCTOPNDTE ].month<=1

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

ACCTOPNDTE ACTNUM
2012-10-01  1234
2013-07-03  6666
2012-12-09  3333
我想传入一个输入年度,并返回当前会计年度(11月-10月)和上一个会计年度的所有行。 因此,如果我通过2012-->我想要1234 如果我通过2013,我想要:6666和3333 因此,条件1:

df[df[ACCTOPNDTE ].year = $inputYear AND df[ACCTOPNDTE ].month<=10]
条件3:

df[df[ACCTOPNDTE ].year = $inputYear -2  AND df[ACCTOPNDTE ].month > 10]
如何在OR语句中组合这3个条件,我似乎无法理解语法。

使用with,for
按位和
使用
&
和for
按位或

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]
m1=(df['ACCTOPNDTE'].dt.year==inputYear)和(df['ACCTOPNDTE'].dt.10个月)
df=df[m1 | m2 | m3]

谢谢。在pandas中,我何时使用按位&以及何时使用关键字“and”?@Victor在pandas中使用1d数组(系列)或2d数组(数据帧),因此使用按位&。Veru rate用于处理标量。
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]