我在这里有代码,我正在搜索关于pandas数据帧的系列文章。
df[(df['SlyWeekofFiscalYear']==wk) &
(df['IB']==bnd) &
(df['slyfiscalyear']==yr)]
['Wholesale'].sum()
它在一个传递kwarg bnd=None
的函数中。有没有办法忽视第二行代码bnd=None
?
目前我有一个很长的if语句,但如果可能的话,我想整理一下代码。
答案 0 :(得分:2)
您可以将第二行更改为((bnd is None) | (df['IB'] == bnd))
。如果bnd
为None,则会产生一个全真系列,并且由于您有&
个运算符,因此它对结果没有影响。
答案 1 :(得分:1)
您可以尝试三元声明:
(df['IB'] == bnd if bnd is not None else True)
标量值True
应正确播放到正确长度的矢量。
答案 2 :(得分:1)
如果true
,您是否尝试使用bnd=None
的某些内容替换第二行?
Somelike:
((df['IB']==bnd) | (bnd is None))