将数据帧转换为另一个dataframe pandas PYTHON的列

时间:2018-04-11 05:14:40

标签: python pandas

我需要以特定的方式将两个表合并在一起:

第一个就是这样:

    Out[7]: 
         A   B   C   D
     a   1   4   4   4
     b   4   5   5   5
     c   3   6   6   6
     d   8   7   7   7

Second.one喜欢这个:

      Out[8]: 
     T1  T2  C2  D2   S2.   
  a  A4  B4  C4  D4.   A.
  a  ..............    B.
  a  ..............    C
  a  ..............    D
  b  A5  B5  C5  D5.   A
  b ...............    B
  ..
  ..     
  c  A6  B6  C6  D6.   A
  ...
  ...     
  d  A7  B7  C7  D7.   A
  d  ...............   B
  ...     

我希望执行以下操作:

           Out[8]: 
          T1  T2  C2  D2   S2.     M
       a  A4  B4  C4  D4.   A      1
       a. A2. X4. C3. B8.   B      4
       a. S7. N4. R3. S7.   C      4
       .
       .
       .
       b  A5  B5  C5  D5.    A      4
       b. F4. F6.  C8. A5.    B      5
       ....
       .....
       c  A6  B6  C6  D6.    C.      6
       .....
       ......
       d  A7  B7  C7  D7.   D.     7
       ......
       .......

目标:查看第一个和第二个数据框(a,b,c,d)中第一列的值,当第一个df中的NAME COLUMN对应于值ROW&#时,使用第一个数据帧的值创建一个新列39; S在第二列的S2中。它不是对角

1 个答案:

答案 0 :(得分:0)

我认为需要:

df = (df2.set_index('S2', append=True)
         .rename_axis((None, None))
         .join(df1.stack().rename('M'))
         .reset_index(level=1)
         .rename(columns={'level_1':'S2'}))
print (df)

  S2  T1  T2  C2   D2  M
a  A  A4  B4  C4  D4.  1
b  B  A5  B5  C5  D5.  5
c  C  A6  B6  C6  D6.  6
d  D  A7  B7  C7  D7.  7