Python:数据帧.melt如何选择一系列列作为标识符变量?

2024-04-30 01:34:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图改变数据集的结构

目前有:

RE id    Country    0    1   2    ...    n
1001     CN,TH     CN   TH   nan  ...    nan
1002     UK        UK   nan  nan  ...    nan

我已经将Country列分开,因此增加了一些列。现在我试着用df.熔融要得到这个:

^{pr2}$

所以我最终可以用一个支点来达到这个目的

^{3}$

我试过:

df = a.melt(id_vars=[a[[0]],a[[1]],a[[2]]], value_vars=['RE id'])

如何选择数据帧中的列范围作为标识符变量? https://pandas.pydata.org/pandas-docs/version/0.23.4/generated/pandas.DataFrame.melt.html#pandas.DataFrame.melt


Tags: 数据reiddataframepandasdfvarsnan
1条回答
网友
1楼 · 发布于 2024-04-30 01:34:17

我想问题是你引用的列名不正确。另外,我相信您在代码中颠倒了id_vars(我想应该是Re id)和{}(列名0和{})。在

下面是我如何处理这个问题

进口

import pandas as pd
import numpy as np

以下是部分数据,足以证明可能存在的问题

^{pr2}$

现在,将pd.melt

  1. id_vars指向Re id
  2. value_vars作为您想要melt的2列(即列名0和{})
df_melt = pd.melt(df, id_vars=['Re id'], value_vars=[0,1], value_name='Country')
df_melt.sort_values(by=['Re id', 'Country'], ascending=[True,False], inplace=True)
print(df_melt)
    Re id   variable    Country
2    1001          1         TH
0    1001          0         CN
1    1002          0         UK
3    1002          1        NaN

你不需要把所有的名字都分开。在

相关问题 更多 >