在保留分类变量的同时重塑数据帧

2024-06-06 22:25:55 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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来计算成本,同时在dataframe中保留其余的分类变量

我尝试过旋转数据,但它删除了我想要保留的性别和年龄变量

我尝试过使用groupby函数并对cost列求和,但当我尝试添加性别和年龄变量时,它要么生成NaNs,要么为同一用户重新创建包含多个条目的原始表

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


Tags: 数据用户dataframeage分类productgender形状
1条回答
网友
1楼 · 发布于 2024-06-06 22:25:55

您需要^{}+^{}

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'})

相关问题 更多 >