为 Seaborn swarmplot 获取 Pandas 格式正确的数据框

Getting Pandas Dataframe in correct format for Seaborn swarmplot

我在 CSV 文件中有数据,我想像这里的第 4 个示例一样在 Swarmplot 中绘制 https://stanford.edu/~mwaskom/software/seaborn/tutorial/categorical.html - 即用颜色表示组。

在 CSV 文件中,数据按如下方式排列:

Group,1,1,2,2
Value1,0.5,0.3,0.2,0.1
Value2,1.7,1.3,1.1,1.0
...

我希望 swarmplot 上的颜色由组确定,并且每个值都有一个单独的图。

我已经走到这一步了:

import pandas as pns
import seaborn as sns
data_in = pns.read_cvs('file.csv',header=None,index_col=0)
data_t = data_in.transpose()

此时我的数据框如下所示:

0 Group Value1 Value2 ...
1     1    0.5    1.7
2     1    0.3    1.3
3     2    0.2    1.1
4     2    0.1    1.0

如果我那么做

k = data_t.keys()[[2,3]]
sns.swarmplot(data_t[k])

我可以拉出我想要的列并得到一个除了颜色之外看起来不错的图。我的问题是,为了使用 hue 关键字参数指定颜色,我还必须指定 'x' 或 'y' 参数。我无法弄清楚如何将我的数据框处理成一种我可以指定其中任何一个变量的格式。我想得到这样的东西:

0 Group   Name Value
1     1 Value1   0.5
2     2 Value1   0.3
3     1 Value2   0.2
4     2 Value2   0.1

...

但是如果我想堆叠 (),我无法解决,完全使用 pivot_table 或其他东西。

提前致谢。

为了转换table,可以使用melt

pd.melt(df,id_vars='Group',value_vars=['Value1','Value2'])

Group variable  value
0      1   Value1    0.5
1      1   Value1    0.3
2      2   Value1    0.2
3      2   Value1    0.1
4      1   Value2    1.7
5      1   Value2    1.3
6      2   Value2    1.1
7      2   Value2    1.0