2016-12-28 102 views
1

篩選列我有一個多指標一個大熊貓數據幀。我想順路1水平具有價值超過12大於所有列的值。我能做熊貓:在一個水平

df.drop([13, 14, 15, 16, 17, 18, 19, 20], level=1, axis=1, inplace=True) 

但這並不能消除大於20的值。有沒有辦法將值限制爲12?

回答

2

使用pd.IndexSlice

df.loc[:, pd.IndexSlice[:, :12]] 

考慮df

mux = pd.MultiIndex.from_product([list('ab'), range(5,30,5)]) 
df = pd.DataFrame([np.arange(10)], columns=mux) 
print(df) 

    a    b    
    5 10 15 20 25 5 10 15 20 25 
0 0 1 2 3 4 5 6 7 8 9 

然後

df.loc[:, pd.IndexSlice[:, :12]] 

    a  b 
    5 10 5 10 
0 0 1 5 6 

警告
這需要df.columns排序。您可能需要進行排序提前