如何在熊猫的条件下发表条件声明' pivot_table函数?

时间:2018-04-25 15:42:19

标签: python pandas pivot-table aggregate

此代码正常运行但不是我想要的方式:

vor_merged_to_dad_pivot = pd.pivot_table(
    vor_merged_to_dad,
    index=['ID'], 
    values=['MDD_Y', 'ADMITDATE'],
    aggfunc={
        'MDD_Y':np.sum,
        'ADMITDATE':np.min
    }
)

我想获得最小的ADMITDATE,但只有当MDD_Y等于1时,我才尝试这个但是没有工作:

vor_merged_to_dad_pivot = pd.pivot_table(
    vor_merged_to_dad,
    index=['ID'], 
    values=['MDD_Y', 'ADMITDATE'],
    aggfunc={
        'MDD_Y':np.sum,
        'ADMITDATE':np.min if 'MDD_Y'==1
    }
) 

SyntaxError: invalid syntax

1 个答案:

答案 0 :(得分:1)

解决此问题的一种方法是添加辅助列:

getMeAPDF(){
    this.apiService.getMeMyPDF().subscribe(res => {
      if(res !== null && res !== undefined){
        this.saveToFileSystem(res.body);
      }
    }, (error) => console.log(error), () => {});
  }

  private saveToFileSystem(response) {
    const blob = new Blob([response], { type: 'text/pdf' });
    const d = new Date();
    saveAs(blob, 'WOWPDF_' + this._datepipe.transform(d, 'yyyyMMdd_HHmmss') + '.pdf');
  }

然后在max_value = vor_merged_to_dad['ADMITDATE'].max() vor_merged_to_dad['ADMITDATE2'] = np.where(vor_merged_to_dad['MDD_Y_DAD'] == 1, vor_merged_to_dad['ADMITDATE'], max_value) 聚合中使用“ADMITDATE2”。