数据框列和原始重塑

时间:2019-03-19 04:19:14

标签: python dataframe

嗨,我有一个要成型的数据框。

数据框

Month   StartAt WorksDone
    0   2017-1  1000
    1   2017-1  1000
    2   2017-1  1000
    3   2017-1  800
    4   2017-1  800
    5   2017-1  800
    0   2017-2  800
    1   2017-2  800
    2   2017-2  800
    3   2017-2  800
    4   2017-2  800

我想将其重塑为

    2017-1  2017-2
0   1000    800
1   1000    800
2   1000    800
3   800     800
4   800     800
5   800 

我发现df.T可以交换列和行,但是我只想移动特定的列。有什么建议怎么做吗?

2 个答案:

答案 0 :(得分:0)

看看数据透视功能,在这种情况下,请看一下unstack方法:

df.unstack(level=-1)

应该给您想要的结果

Source

答案 1 :(得分:0)

您需要pd.crosstab

import numpy as np
pd.crosstab(df['Month'],df['StartAt'],values=df['WorksDone'],aggfunc=np.mean).reset_index(drop=True)

out[]:
StartAt 2017-1  2017-2
0       1000.0  800.0
1       1000.0  800.0
2       1000.0  800.0
3       800.0   800.0
4       800.0   800.0
5       800.0   NaN