python - 为 Seaborn 群图获取正确格式的 Pandas Dataframe

标签 python pandas seaborn

我的 CSV 文件中有数据,我想在 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
...

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

我已经走到这一步了:

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

...

但是我无法确定是否要使用 stack()、pivot_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

关于python - 为 Seaborn 群图获取正确格式的 Pandas Dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37069439/

相关文章:

python - Python 的 ElementTree 中的多个文本节点? HTML生成

pandas - 在 Pandas 中添加零行

python - 根据日期时间列创建一天中的小时和日期列

python - Interactive Plot - 改变色调的交互式选项

python - 使用 seaborn 对数对数 lmplot

python - openerp刷新页面时Treeview不包含记录?

python - Tensorflow 中的 Theano.function 等价物

python - 在 Windows 上安装 python3 + lxml

python - 如何将具有 NULL 值的 panda 列转换为 int?

python - Jupiter Python seaborn 热图未显示所有相关性