python - "col_level"在melt函数中起什么作用?

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

谢谢。

最佳答案

您可以查看melt :

col_level : int or string, optional

If columns are a MultiIndex then use this level to melt.

示例:

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

关于python - "col_level"在melt函数中起什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47951839/

相关文章:

python - 来自保存模型的 TF 估计器 : Can't Load *. pb

python - Tornado 和基于Python的守护进程之间的最佳通信方式是什么?

python - 编写错误函数以在 python 中提供 scipy.optimize.least_squares

python - Pandas - 带有另一个数据框python索引列表的列

python - Pandas 根据条件移动行

python - Pandas str.replace 的管道字符不起作用?

Python pandas - 将 lambda 添加到每一列

python - 从数据帧中的当前索引反向搜索

python - 如何从 pandastable 保存数据?

python - 将地址拆分为三个不同系列的正则表达式 [第 1 部分]