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]