gpt4 book ai didi

python - GroupBy 对象中的数据处理。如何添加列?

转载 作者:太空宇宙 更新时间:2023-11-04 04:35:33 24 4
gpt4 key购买 nike

我想在 MLB 数据集中获取每个投手每场比赛的最后一球,并将其标记为 True。但是,我在添加列或修改 GroupBy 对象中的数据框时遇到问题。如何有效地添加此列?

data['last_pitch'] = False
g = data.groupby(['gameString', 'pitcherId'])
for x, pitcher in g:
pitcher.iloc[-1]['last_pitch'] = True

最佳答案

为此使用 GroupBy 很诱人。但是,当您不希望实际聚合数据时,通常有替代方法。在这里,您可以使用 pd.Series.duplicated使用 keep='last':

# data from gyoza

df['last_pitch'] = ~df['pitcherId'].duplicated(keep='last')

print(df)

gameString pitcherId last_pitch
0 a c False
1 a c True
2 b d False
3 b d False
4 b d True

如果你真的想使用GroupBy,你可以使用last方法:

idx = df.reset_index().groupby('pitcherId')['index'].last().values

df['last_pitch'] = df.index.isin(idx)

关于python - GroupBy 对象中的数据处理。如何添加列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51812382/

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