首页 文章

在保持分类变量的同时重塑数据框架

提问于
浏览
0

我一直在尝试使用数据透视表来重塑这个具有以下形状的数据帧 .

User  Product  Gender  Age  Cost

1     1        M       25   10
1     2        M       25   12
1     3        M       25   14
1     4        M       25   15
2     2        F       19   29
2     4        F       19   14
2     6        F       19   17
2     8        F       19   30

我希望它看起来像这样:

User  Gender  Age   Cost

1     M        25   51   
2     F        19   90

换句话说,我想通过UserID对成本进行求和,同时保留数据框中的其余分类变量 .

我尝试过调整数据,但它会丢弃我想要保留的性别和年龄变量 .

我尝试过使用groupby函数并对成本列求和,但是当我尝试添加性别和年龄变量时,它会生成NaN或重新创建具有同一用户的多个条目的原始表 .

性别和年龄变量在用户之间是一致的 . 我错过了什么?

1 回答

  • 1

    你需要groupby agg

    df.groupby(['User','Gender']).agg({'Age':'first','Cost':'sum'}).reset_index()
    
       User Gender  Age  Cost
    0     1      M   25    51
    1     2      F   19    90
    

    要么:

    df.groupby(['User','Gender'], as_index=False).agg({'Age':'first','Cost':'sum'})
    

相关问题