Python 通过两列并集重新索引数据帧

Python 通过两列并集重新索引数据帧,python,pandas,Python,Pandas,可能是重复的,但我甚至不确定要搜索什么 如果我有这样的熊猫数据帧: index RH LH Data1 Data2 . . . 1 A1 A2 A B 2 B1 NaN C D 3 NaN C2 E F 我想重新编制索引,如下所示: index Data1 Data2 A1 A B A2 A B B1 C D C2 E F 有没有一个简单的方法可以做到这一点

可能是重复的,但我甚至不确定要搜索什么

如果我有这样的熊猫数据帧:

index RH  LH  Data1  Data2 . . . 
1     A1  A2  A      B
2     B1  NaN C      D
3     NaN C2  E      F
我想重新编制索引,如下所示:

index Data1  Data2
A1    A      B
A2    A      B
B1    C      D
C2    E      F
有没有一个简单的方法可以做到这一点?或者我应该只为循环执行一对

您可以对列表中未定义名称的所有列使用,然后通过使用
drop=True
删除最后一个级别,将所有其他级别转换为列并通过以下方式创建索引:

或与一起使用,删除列
变量
,并通过
idx
列最后创建索引:

df = (df.melt(cols, value_name='idx')
       .dropna(subset=['idx'])
       .drop('variable', axis=1)
       .set_index('idx'))
print (df)
    Data1 Data2
idx            
A1      A     B
B1      C     D
A2      A     B
C2      E     F
df = (df.melt(cols, value_name='idx')
       .dropna(subset=['idx'])
       .drop('variable', axis=1)
       .set_index('idx'))
print (df)
    Data1 Data2
idx            
A1      A     B
B1      C     D
A2      A     B
C2      E     F