Python, pandas, melt

melt

2つ以上の値を格納している列columnを合体して、 1つの値valuesを格納している列columnを作成し、さらに、それに対応した認識子identifier variable(すなわち、もとの列名headerを)格納した列columnを作る。

例。

In [1]: import pandas as pd

In [2]: df = pd.DataFrame(data=[('a',1,2),('b',3,4),('c',5,6)])

In [3]: df.columns = ['x', 'y', 'z']

In [4]: df
Out[4]: 
   x  y  z
0  a  1  2
1  b  3  4
2  c  5  6

In [6]: pd.melt(df, id_vars=['x'], value_vars=['y','z'])
Out[6]: 
   x variable  value
0  a        y      1
1  b        y      3
2  c        y      5
3  a        z      2
4  b        z      4
5  c        z      6

pandas.melt — pandas 0.16.0 documentation

何故これがいるか、、、 sns.violinplot, sns.boxplotFacetGrid を使ってmapを並べる時に必要。

github.com