13832811375 发表于 2020-11-26 10:11

遇上不会的pandas问题了,特来求助!

本帖最后由 13832811375 于 2020-11-26 15:56 编辑

我在学pandas,遇到个问题:
有这样一个表,“商品ID”列有多项重复,我想用groupby("商品ID")分组后,再根据分组结果对“新库存”的值求和,但其它列不变化。应该怎么操作?
我从网上查了下,“df.groupby('商品ID')['新库存'].sum()”只能得到一列值,而“df.groupby('商品ID').sum()”则得到的是所有可以求和的列的值,但是我需要其它列的值不进行求和。
这个要怎么搞?

xuanmuluck 发表于 2020-11-26 10:29

商品id的属性改成文本呢?

沉默之剑 发表于 2020-11-26 11:28

商品名称和入库时间这些文本必须相同才能合并吧,如果冲突了的话请问楼主准备怎么取舍呢?名称可以录入时断言,入库时间可以用最新日期覆盖,如果实现起来可能会很麻烦,还不如将就用着,以后有时间了全部重写一个。

13832811375 发表于 2020-11-26 15:58

沉默之剑 发表于 2020-11-26 11:28
商品名称和入库时间这些文本必须相同才能合并吧,如果冲突了的话请问楼主准备怎么取舍呢?名称可以录入时断 ...

这也是我一直搞不明白的地方:如果只把“新库存”列的值按“商品ID”用groupby聚合以后,那其它各列的数值要如何取舍,要怎么操作?

13832811375 发表于 2020-11-26 15:59

xuanmuluck 发表于 2020-11-26 10:29
商品id的属性改成文本呢?

好像没啥影响,

rsnodame 发表于 2020-11-30 14:27

本帖最后由 rsnodame 于 2020-11-30 14:32 编辑

{:301_975:} 楼主你其实没有把自己的需求整理清楚。根据你的描述和图片,我觉得你是想计算每一次新增库存后,对应商品的累积量吧?
先按商品ID分组,然后按入库时间升序,对['入库数量']进行累计求和(.cumsum()方法),保存为['新库存']列
页: [1]
查看完整版本: 遇上不会的pandas问题了,特来求助!