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

问题描述 投票:1回答:1

从文档:

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

谢谢。

python pandas dataframe
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.