将列数据从一个数据帧转置到另一数据帧

时间:2020-01-15 09:27:01

标签: python pandas

我有一个数据框df1,其头部看起来像(实际数据框较大):

     Quarter    Body    Total requests  Requests Processed  
  0  Q3 2019       A                93                  92  
  1  Q3 2019       B               228                 210  
  2  Q3 2019       C               180                 178  
  3  Q3 2019       D                31                  31  
  4  Q3 2019       E               555                 483  
  5  Q2 2019       A                50                  50  
  6  Q2 2019       B               191                 177  
  7  Q2 2019       C               186                 185  
  8  Q2 2019       D                35                  35  
  9  Q2 2019       E               344                 297

我还有另一个数据帧df2,其当前设置如下:

 Body   Q2 2019 Q3 2019
0   A   
1   B   
2   C   
3   D   
4   E   

我正在尝试找到一种方法,将Total requests的列df1转换为df2,这样我想要的输出看起来像:

  Body  Q2 2019 Q3 2019
0    A       50      93
1    B      191     228
2    C      186     180
3    D       35      31
4    E      344     555

我环顾四周,但没有成功就找不到。

1 个答案:

答案 0 :(得分:3)

您可以unstack将df1帖子设置BodyQuarter作为索引,然后与df2合并(如果使用df2很重要,否则无需合并即可): >

df2.merge(df1.set_index(['Body','Quarter'])['Total requests'].unstack(),
      left_on='Body',right_index=True,how='left',
      suffixes=('_x','')).reindex(df2.columns,axis=1)

  Body  Q2 2019  Q3 2019
0    A       50       93
1    B      191      228
2    C      186      180
3    D       35       31
4    E      344      555
相关问题