gpt4 book ai didi

python - 基于一列的数据框组并获取另一列所需项目的值的总和

转载 作者:行者123 更新时间:2023-12-04 09:54:18 24 4
gpt4 key购买 nike

目前我的数据框是:

dd = [[1001,'green apple',1,7],[1001,'red apple',1,2],[1001,'grapes',1,5],[1002,'green apple',2,4],[1002,'red apple',2,4],[1003,'red apple',3,8],[1004,'mango',4,2],[1004,'red apple',4,6]]
df = pd.DataFrame(dd, columns = ['colID','colString','custID','colQuantity'])
   colID     colString     custID     colQuantity 
0 1001 green apple 1 7
1 1001 red apple 1 2
2 1001 grapes 1 5
3 1002 green apple 2 4
4 1002 red apple 2 4
5 1003 red apple 3 8
6 1004 mango 4 2
7 1004 red apple 4 6

现在我只能使用代码过滤包含红色和绿色苹果的行:
selection = ['green apple','red apple']
mask = df.colString.apply(lambda x: any(item for item in selection if item in x))
df = df[mask]

电流输出:
   colID     colString     custID     colQuantity 
0 1001 green apple 1 7
1 1001 red apple 1 2
3 1002 green apple 2 4
4 1002 red apple 2 4
5 1003 red apple 3 8
7 1004 red apple 4 6

最终所需的输出是获得具有相同 colID 的青苹果和红苹果的总和:
   colID   custID colQuantity
1001 1 9
1002 2 8

最佳答案

您可以使用 isin 索引数据帧,然后 groupby.sum :

(df[df.colString.isin(['green apple', 'red apple'])]
.groupby(['colID','colString'], as_index=False)
.sum())

colID colString colQuantity
0 1001 green apple 7
1 1001 red apple 2
2 1002 green apple 4
3 1002 red apple 4
4 1003 red apple 8
5 1004 red apple 6

关于python - 基于一列的数据框组并获取另一列所需项目的值的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61957493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com