당신은 sort_index
로 value_counts
을 사용할 수 있습니다, 다음 T
에 의해 to_frame
마지막으로 전치에 의해 DataFrame
을 생성 : 코멘트에 의해
print (df.Power.value_counts().sort_index(ascending=False).to_frame().T)
100 75 50 25
Power 1 1 2 2
편집 :
print (pd.crosstab(df.Department, df.Power).sort_index(axis=1, ascending=False))
Power 100 75 50 25
Department
ABC 0 1 0 1
DEF 1 0 2 1
:
당신은 crosstab
필요 빠른
groupby
및 unstack
또 다른 솔루션 :
필요 열
Department
에 의해
groupby
및
Person
이, 제 2 위치로
groupby
에 열
Person
을 추가하면
print (df.groupby(['Department','Power'])
.size()
.unstack(fill_value=0)
.sort_index(axis=1, ascending=False))
Power 100 75 50 25
Department
ABC 0 1 0 1
DEF 1 0 2 1
(당신에게 감사 piRSquared) : 코멘트에 의해
print (df.groupby(['Department','Person', 'Power'])
.size()
.unstack(fill_value=0)
.sort_index(axis=1, ascending=False))
Power 100 75 50 25
Department Person
ABC 1234 0 1 0 0
1235 0 0 0 1
DEF 1236 0 0 1 0
1237 1 0 0 0
1238 0 0 0 1
1239 0 0 1 0
EDIT1 :
다른 누락 값을 추가해야하는 경우 reindex
을 사용하십시오. :
print (df.groupby(['Department','Power'])
.size()
.unstack(fill_value=0)
.reindex(columns=[100,75,50,25,0], fill_value=0))
Power 100 75 50 25 0
Department
ABC 0 1 0 1 0
DEF 1 0 2 1 0
을, 당신은 – Jason