“col_level”在熔化函数中做了什么?

时间:2017-12-23 10:46:44

标签: python pandas dataframe

来自文档:

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

col_level做什么?

具有不同col_level值的示例会很棒。

我的当前数据框由以下内容创建:

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')]

感谢。

1 个答案:

答案 0 :(得分:2)

您可以查看melt

  

col_level :int或string,可选

     

如果列是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