gpt4 book ai didi

python - 您可以使用 pandas 在一行中从 groupby 对象创建新列吗?

转载 作者:太空宇宙 更新时间:2023-11-04 09:28:43 25 4
gpt4 key购买 nike

我想知道我是否能够在一行中执行以下操作,或者是否有必要分两行执行(我来自 R,在那里我知道如何在一次调用中完成)。我想计算击球率,这需要同时处理安打数和击球数列

import pandas as pd

batting = pd.DataFrame({'playerID': [1, 1, 1, 2, 2, 2],
'h': [80, 97, 95, 30, 35, 22],
'ab': [400, 410, 390, 150, 170, 145]})

batters = (batting.groupby('playerID')
.agg({'h' : 'sum', 'ab' : 'sum'})
.reset_index())

batters['ba'] = batters['h']/batters['ab']

最佳答案

eval is your friend .

(batting.groupby('playerID')
.agg({'h' : 'sum', 'ab' : 'sum'})
.reset_index()
.eval('ba = h / ab'))

playerID h ab ba
0 1 272 1200 0.226667
1 2 87 465 0.187097

您可以将其缩短为,

batting.groupby('playerID', as_index=False).sum().eval('ba = h / ab')

playerID h ab ba
0 1 272 1200 0.226667
1 2 87 465 0.187097

关于python - 您可以使用 pandas 在一行中从 groupby 对象创建新列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56550453/

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