如何在pandas(Python)中基于多列的索引创建一列?

如何在pandas(Python)中基于多列的索引创建一列?,python,pandas,Python,Pandas,我有一个数据框,其中对于某个索引(1-M关系)有多个选项-例如,州作为索引,县作为各自的列。我想以一种只创建一列但包含所有值的方式对其进行分组。这是一个基本的转变,但不知怎的,我不能得到它的权利 很抱歉,我不知道如何插入实际已运行的代码,因此在这里我提供了创建示例DFs的代码,以了解我要创建的内容 pd.DataFrame({'INDEX': ['INDEX1','INDEX2','INDEX3'], 'col1': ['a','b','d'],

我有一个数据框,其中对于某个索引(1-M关系)有多个选项-例如,州作为索引,县作为各自的列。我想以一种只创建一列但包含所有值的方式对其进行分组。这是一个基本的转变,但不知怎的,我不能得到它的权利

很抱歉,我不知道如何插入实际已运行的代码,因此在这里我提供了创建示例DFs的代码,以了解我要创建的内容

pd.DataFrame({'INDEX': ['INDEX1','INDEX2','INDEX3'],
                    'col1': ['a','b','d'],
                   'col2': ['c','f',np.nan],
                   'col3': ['e',np.nan,np.nan]})
我想让它转换,这样我就得到了这个数据帧:

pd.DataFrame({'INDEX': ['INDEX1','INDEX1','INDEX1','INDEX2','INDEX2','INDEX3'],
                    'col1': ['a','c','e','b','f','d']})

您可以在此处使用
melt

df = pd.melt(df, id_vars=['INDEX']).drop(columns=['variable']).dropna()
print(df)

    INDEX value
0  INDEX1     a
1  INDEX2     b
2  INDEX3     d
3  INDEX1     c
4  INDEX2     f
6  INDEX1     e