首页 > 解决方案 > 只有当它们的总和相等时,如何对数据框/列表中的元素进行分组?

问题描述

如果某个日期的买入和卖出数量相同,我想组合元素,并省略其余的元素,如下例所示。

数据集:

 1/1/09 bought 100 AAPL
 1/1/09 sold 100 AAPL
 1/1/09 bought 35 AAPL
 1/1/09 sold 35 AAPL
 1/1/09 bought 105 AAPL

我希望生成的数据框是:

1/1/09 bought 135 AAPL
1/1/09 sold 135 AAPL
1/1/09 bought 105 AAPL

标签: python-3.xpandasnumpy

解决方案


只是 groupby 和 sum:

my_var = ['bought','sold','bought','sold','bought']
dollar = [100,100,35,35,105]
date = ['2009-01-01','2009-01-01','2009-01-01','2009-01-01','2009-01-01']
sku = ['AAPL','AAPL','AAPL','AAPL','AAPL']

df = pd.DataFrame({'status':pd.Series(my_var),'dollars':pd.Series(dollar),'date':pd.Series(date),'SKU':pd.Series(sku)})

df.groupby(['SKU','status','date'],as_index = False)['dollars'].sum()

推荐阅读