我需要創建多個資料透視表,其中只有部分更改是傳遞給它的資料。例如
Q1 = pd.pivot_table(df1, values='id', index='race', columns='gender', aggfunc='count')
Q2 = pd.pivot_table(df1[df1['state']=='NJ'], values='id', index='race', columns='gender', aggfunc='count')
Q3 = pd.pivot_table(df1[df1['zipcode']=='07030'], values='id', index='race', columns='gender', aggfunc='count')
我不想多次撰寫每個資料透視陳述句,而是想創建一個問題字典:條件并在資料透視表的引數中提供每個問題的條件,使用看起來像這樣的 for 回圈:
filter = {"Q1": "", "Q2":"df1['state']=='NJ'", "Q3":"df1['zipcode']=='07030'" }
for qn, mask in filter.items():
Qx = pd.pivot_table(df1[mask], values='id', index='race', columns='gender', aggfunc='count')
Qx.to_excel('some.xlsx')
顯然這會引發錯誤,因為掩碼是作為字串讀入的。你如何讓它讀起來不是一個字串?謝謝!
uj5u.com熱心網友回復:
您可以單獨使用條件(并df1.columns為 Q1 選擇整個 DataFrame)
filter = {"Q1": df1.columns, "Q2":df1['state']=='NJ', "Q3":df1['zipcode']=='07030'}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/422941.html
標籤:
