2017-10-19 60 views
0

我想做一個pivot_table,但在某些情況下,我要補充的利潤, 所以我的代碼看起來像蟒蛇大熊貓添加參數的功能

if ytd: 
    datak = direct.pivot_table(index='Code', columns='Period', 
           values=agg, aggfunc=sum, 
           margins=True, 
           margins_name='Year to date') 
else: 
    datak = direct.pivot_table(index='Code', columns='Period', 
           values=agg, aggfunc=sum) 

所以我真正想要做的是開始的東西像

EXP =(索引= '代碼',列= '期間',值= AGG,aggfunc =總和)

瑪格=(餘量=真,margins_name = '年初至今')

最後

數據k = direct.pivot_table(EXP +瑪格)年初至今是否還有direct.pivot_table(EXP)

回答

1

試試這個:

datak = direct.pivot_table(index='Code', columns='Period', 
          values=agg, aggfunc=sum, 
          margins=True if ytd else False, 
          margins_name='Year to date' if ytd else 'All') 
1

也許eval

exp = 'direct.pivot_table(index=\'Code\', columns=\'Period\', values=agg, aggfunc=sum' 

marg = 'margins=True, margins_name=\'Year to date\')' 

datak = eval(exp + ', ' + marg) if ytd is not None else eval(exp + ')')