拆分一列并合并有多个数据度量的行

时间:2020-03-31 23:01:52

标签: python pandas

我正在尝试使用python解决我的数据分析问题。 我有一张这样的桌子:

git clone --recurse-submodules <git-url>

我想以一种可以捕获唯一ID和MEF_ID的多个Qtr_measures的方式来排列Value_column。这样做时,表的整体大小将减小,我想让列将Qtr_Measures替换为以下类型:

+----------+-----+------+--------+-------------+--------------+
|       ID | QTR | Year | MEF_ID | Qtr_Measure | Value_column |
+----------+-----+------+--------+-------------+--------------+
|       11 |   1 | 2020 | Name1  | QTRAVG      |            5 |
|       11 |   2 | 2020 | Name1  | QTRAVG      |            8 |
|       11 |   3 | 2020 | Name1  | QTRAVG      |            6 |
|       11 |   4 | 2020 | Name1  | QTRAVG      |            9 |
|       15 |   1 | 2020 | Name2  | QTRAVG      |           67 |
|       15 |   2 | 2020 | Name2  | QTRAVG      |           89 |
|       15 |   3 | 2020 | Name2  | QTRAVG      |          100 |
|       15 |   4 | 2020 | Name2  | QTRAVG      |          121 |
|       11 |   1 | 2020 | Name1  | QTRMAX      |            6 |
|       11 |   2 | 2020 | Name1  | QTRMAX      |            9 |
|       11 |   3 | 2020 | Name1  | QTRMAX      |            7 |
|       11 |   4 | 2020 | Name1  | QTRMAX      |           10 |
+----------+-----+------+--------+-------------+--------------+

如何使用python做到这一点?

谢谢

1 个答案:

答案 0 :(得分:0)

pivot_tablereset_indexrename_axis一起使用:

piv = (df.pivot_table(index=['ID', 'QTR', 'Year', 'MEF_ID'], 
                      values='Value_column', 
                      columns='Qtr_Measure')
       .reset_index()
       .rename_axis(None, axis=1)
      )

print(piv)
   ID  QTR  Year MEF_ID  QTRAVG  QTRMAX
0  11    1  2020  Name1     5.0     6.0
1  11    2  2020  Name1     8.0     9.0
2  11    3  2020  Name1     6.0     7.0
3  11    4  2020  Name1     9.0    10.0
4  15    1  2020  Name2    67.0     NaN
5  15    2  2020  Name2    89.0     NaN
6  15    3  2020  Name2   100.0     NaN
7  15    4  2020  Name2   121.0     NaN