我有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
我想melt
从gene_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'具有多个值
该示例与文档中的示例几乎相同,但不知何故。任何建议将不胜感激。
答案 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