Pandas使用不相等的列来转移数据帧

时间:2016-04-26 12:16:17

标签: python pandas dataframe pivot

我有一个数据框,在一列中包含一个分类变量,在另一列中包含一个连续变量,如下所示:

    gender  contVar
    Male     22379
    Female   24523
    Female   23421
    Male     23831
    Male     29234

我想得到一张这样的表:

    Male   Female
    22379   24523
    23831   23421
    23831
    29234

大熊猫有可能吗?当我这样做时:

    df.pivot(index = df.index.tolist(), columns='gender', values='contVar') 

我得到索引超出范围(显然因为有索引但是我也假设它是因为每列中的行数不相等)。任何想法都表示赞赏。

1 个答案:

答案 0 :(得分:2)

你可以这样做:

pd.concat([pd.DataFrame({g:d.contVar.tolist()}) for g,d in df.groupby('gender')], axis=1)

Out[416]:
   Female   Male
0   24523  22379
1   23421  23831
2     NaN  29234