Python Pandas数据框搜索

时间:2017-01-19 16:39:22

标签: python pandas

我在这里有代码,我正在搜索关于pandas数据帧的系列文章。

                    df[(df['SlyWeekofFiscalYear']==wk) &
                       (df['IB']==bnd) &
                       (df['slyfiscalyear']==yr)]
                    ['Wholesale'].sum()

它在一个传递kwarg bnd=None的函数中。有没有办法忽视第二行代码bnd=None

目前我有一个很长的if语句,但如果可能的话,我想整理一下代码。

3 个答案:

答案 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))