对齐不匹配的索引并执行 pandas 熔化

Align not matching indices and perform pandas melt

我有两个索引不同的数据帧

subject_ID,score,region,supplier
1001,27,AP,ABC
1002,35,AP,ABC
1003,29,ANZ,DEF
1004,35,ANZ,DEF
1005,30,KOREA,GHI
1006,34,KOREA,GHI

df = pd.read_clipboard(sep=',')

test_score,dumma,dummeel
217,23,45
315,43,65
219,12,46
315,17,87
310,19,97
314,23,63

df1 = pd.read_clipboard(sep=',')
s = pd.Series([11, 21, 31, 114,261,321])
df1.set_index([s],inplace=True)

基本上,两个数据帧的长度相等。

因此,df 中的第一行(索引 0)对应于 df1 中的索引 11。类似地,df 中的索引 2 对应于 df1 中的索引 21..so on

我想连接两个数据帧并进行 pandas 熔化操作

我尝试了下面的方法,但它不起作用

df2 = df1.reset_index(drop=True)
t2 = pd.concat([df, df2], axis=1)
pd.melt(t2, id_vars =['subject_ID'], value_vars =['score','region','supplier','test_score','dumma','dummeel'])

我希望我的输出如下所示

不确定为什么要这样做,但这是代码

pd.melt(df.join(df1), id_vars=['subject_ID'], value_vars=['score','region','supplier'])



 subject_ID  variable  value
0         1001     score     27
1         1002     score     35
2         1003     score     29
3         1004     score     35
4         1005     score     30
5         1006     score     34
6         1001    region     AP
7         1002    region     AP
8         1003    region    ANZ
9         1004    region    ANZ
10        1005    region  KOREA
11        1006    region  KOREA
12        1001  supplier    ABC
13        1002  supplier    ABC
14        1003  supplier    DEF
15        1004  supplier    DEF
16        1005  supplier    GHI
17        1006  supplier    GHI