2017-08-03 83 views
-2

我想自動生成如下的excel pivot。如何從Python中的列表中的字符串中刪除單引號?

table = pd.pivot_table(df,index=["Manager","Status"],columns=["Product"],values=["Quantity","Price"], aggfunc={"Quantity":len,"Price":[np.sum,np.mean]},fill_value=0)

的詳細信息:reference site

我得到這個從我的程序

{'sales_qty': ['sum'], 'buyer_cnt': ['count,sum']} 

但我想

{'sales_qty': [sum], 'buyer_cnt': [count,sum]} 

點心和計數,總和是動態分配。

我會嘗試這個變量

{'sales_qty': [sum], 'buyer_cnt': [count,sum]}

到aggfunc

(ex. aggfunc= {'sales_qty': [sum], 'buyer_cnt': [count,sum]})

如何從列表中的字符串中刪除單引號?

我的代碼是在這裏: my code

+2

這將有助於給你一個答案,如果您分享您展示如何構建的字典可重複的代碼。 – MedAli

+1

所以計數和總和是你設定的變量嗎? –

+0

應該只顯示沒有引號,還是應該用別的東西代替? – MSeifert

回答

1

無法刪除固有圍繞Python變量的報價。但是,您可以通過**kwargs

import re 
def my_function(**kwargs): 
    the_dict = {'sales_qty': ['sum'], 'buyer_cnt': ['count,sum']} 
    new_dict = {a:re.split("\W+", b[0]) for a, b in the_dict.items()} 
    final_dict = {a:[kwargs[i] for i in b] for a, b in new_dict.items()} 

    print(final_dict) 

my_function(sum=10, count=12) 

輸出參數傳遞給函數:

{'sales_qty': [10], 'buyer_cnt': [12, 10]} 
+0

一個可怕的問題很好的答案 – maestromusica

+0

@maestromusica謝謝! – Ajax1234

+0

@ Ajax1234我更新了我的問題,我需要字符串變量不是數字ex)my_function(sum ='aaa',count ='bbb')--->結果是{'sales_qty':['sum'],'buyer_cnt' :['count','sum']} - >我想{'sales_qty':[sum],'buyer_cnt':[count,sum]} –

相關問題