2017-01-19 6 views
2

저는 열과 서식 번호를 강조 표시하기 위해 스타일러로 팬더 데이터 프레임의 서식을 지정하고 있습니다. 또한 더 명확하고 즐겁고 읽기 쉬운 다중 색인을 적용하려고합니다. Styler를 서브 세트의 컬럼에 적용했기 때문에 다중 인덱스와 함께 작동하지 않습니다.다중 색인 팬더 스타일 개체

예 :

arrays = [np.hstack([['One']*2, ['Two']*2]) , ['A', 'B', 'C', 'D']] 
columns = pd.MultiIndex.from_arrays(arrays) 
data = pd.DataFrame(np.random.randn(5, 4), columns=list('ABCD')) 
data.columns = columns 
import seaborn as sns 
cm = sns.light_palette("green", as_cmap=True) 
data.style.background_gradient(cmap=cm, subset=['A']) 

는 스타일러가 작동 할 수 있도록 열을 부분 집합하는 방법이 있나요. 이 있지만 구현되는 아래의 소식통에 따르면, 그것을 적용하는 방법을 이해하는 나에게 어려운 있도록 예제가되지 않습니다 : http://pandas.pydata.org/pandas-docs/stable/generated/pandas.formats.style.Styler.html https://github.com/pandas-dev/pandas/issues/11655

당신을 감사합니다!

답변

5

난 당신이 pd.IndexSlice[...] 방법을 사용할 수 있습니다 생각 :

data.style.background_gradient(cmap=cm, subset=pd.IndexSlice[:, pd.IndexSlice[:, 'A']]) 

데모 : Jupyter에서

In [5]: data.loc[pd.IndexSlice[:, pd.IndexSlice[:, 'A']]] 
Out[5]: 
     One 
      A 
0 -0.808483 
1 0.009371 
2 0.977138 
3 -0.875554 
4 -0.052424 

In [6]: data 
Out[6]: 
     One     Two 
      A   B   C   D 
0 -0.808483 -2.280683 0.576145 0.649688 
1 0.009371 0.721510 1.013764 -0.157493 
2 0.977138 1.441392 1.718618 -0.320826 
3 -0.875554 -1.060507 1.457075 0.570195 
4 -0.052424 -0.742842 -0.203830 -1.202091 

:

enter image description here

+0

정말 감사합니다! 필자는 다중 색인을 조각내는 것에 대해 교육했습니다. 내가 판다에서 간과 한 것. –