TypeError:melt()为参数“ id_vars”获得了多个值

时间:2018-08-29 18:28:14

标签: python pandas melt

我有pandas DataFrame

  gene_name AAACGGGAGTGACTCT-1 AAAGATGCAGCGAACA-1 AAATGCCTCTGACCTC-1
0    Mrpl15                  0                  0                  0
1    Lypla1                  0                  0  0.978802530773929
2     Tcea1                  0                  0  0.978802530773929
3     Rgs20                  0                  0  0.978802530773929

我想meltgene_name以外的所有列中生成,其中一列用于列名,另一列用于值。因此,根据文档:

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.melt.html

以下应能正常工作:

df = df.melt(df, id_vars=['gene_name'], value_vars=cell_ids)

其中cell_ids = ['AAACGGGAGTGACTCT-1','AAAGATGCAGCGAACA-1','AAATGCCTCTGACCTC-1']

但是它给出了一个错误:

  

melt()对于参数'id_vars'具有多个值

该示例与文档中的示例几乎相同,但不知何故。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:2)

熔化的df已经确定:df.melt() 因此,通常需要将其包含在函数中,例如seaborn或matplotlib中。导致错误。

您可以将代码简化为:

df = df.melt(id_vars=['gene_name'])

默认情况下,使用id_vars旁边的所有列。因此,您无需定义value_vars。

参考:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.melt.html