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