2017-12-23 3 views
1

:"col_level"은 용융 기능에서 무엇을합니까? 문서에서

pd.melt(frame, id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None) 

무엇을 할 col_level합니까?

다른 값의 col_level을 가진 예제는 훌륭합니다.

나의 현재 dataframe은 다음에 의해 생성된다 :

df = pd.DataFrame({'A': {0: 'a', 1: 'b', 2: 'c'}, 
        'B': {0: 1, 1: 3, 2: 5}, 
        'C': {0: 2, 1: 4, 2: 6}}) 
df.columns = [list('ABC'), list('DEF'), list('GHI')] 

감사합니다.

답변

2

당신은 melt을 확인할 수 있습니다

col_level : INT 또는 문자열,

옵션을 열은 MultiIndex 다음 녹기이 수준을 사용하는 경우.

그리고 것은 예 :

df = pd.DataFrame({'A': {0: 'a', 1: 'b', 2: 'c'}, 
        'B': {0: 1, 1: 3, 2: 5}, 
        'C': {0: 2, 1: 4, 2: 6}}) 
#use Multiindex.from_arrays for set levels names 
df.columns = pd.MultiIndex.from_arrays([list('ABC'), list('DEF'), list('GHI')], 
             names=list('abc')) 
print (df) 
a A B C 
b D E F 
c G H I 
0 a 1 2 
1 b 3 4 
2 c 5 6 

#melt by first level of MultiIndex 
print (df.melt(col_level=0)) 
    a value 
0 A  a 
1 A  b 
2 A  c 
3 B  1 
4 B  3 
5 B  5 
6 C  2 
7 C  4 
8 C  6 

#melt by level a of MultiIndex 
print (df.melt(col_level='a')) 
    a value 
0 A  a 
1 A  b 
2 A  c 
3 B  1 
4 B  3 
5 B  5 
6 C  2 
7 C  4 
8 C  6 

#melt by level c of MultiIndex 
print (df.melt(col_level='c')) 
    c value 
0 G  a 
1 G  b 
2 G  c 
3 H  1 
4 H  3 
5 H  5 
6 I  2 
7 I  4 
8 I  6 
+0

이것을 사용했는데, 작동 : pd.melt (DF, col_level = 'B', id_vars = [ 'D']) 하지만 왜 작동하지 않습니다 : pd.melt (df, col_lev el = 'b', id_vars = [ 'D'], value_vars = [ 'E']) 감사! – Nick123

+1

나는 그것을 테스트하고 그렇게 쉬운 대답은 아니다. 그러나'col_level'과 함께'value_vars'를 함께 사용할 수 없습니다. Btw, 사실상 매개 변수'col_level'은 매우 드물어서 버그가있을 수 있습니다. – jezrael

관련 문제