gpt4 book ai didi

python - 按多列groupby进行值计数

转载 作者:行者123 更新时间:2023-11-30 22:08:37 26 4
gpt4 key购买 nike

我有一个 Pandas 数据框,按两列分组:ID 和 Item。然后,我保留每组中最后 5 次出现(最多),最后想计算一种特定类型出现次数的比率。具体来说,我想计算每个 ID 的“U”计数 -项目除以出现的总数。

我在最后一步中遇到了麻烦 - 我不确定如何从下面的一般值计数中获取每个 ID-Item 分组的比率。任何提示将不胜感激 - 谢谢!

d={'ID':[1,1,1,1,1,2,2,2,2,2],'Item': ['box','box','ball','ball','box','box','box','ball','box','ball'],'Direction':['D','U','U','D','U','U','D','D','D','D']}
df=pd.DataFrame(data=d)

z=company_item['revision_arrow'].value_counts()

groups=df.groupby(['ID','Item'])
max_count=5
lastfive=groups.head(max_count).reset_index(drop=True)

#count_series=lastfive['Direction'].value_counts()
count_series=groups['Direction'].value_counts()

最佳答案

当您使用value_counts时,您可以选择标准化结果。您可以使用此参数,然后对生成的 DataFrame 进行索引以仅包含 U 行:

out = (df.groupby(['ID', 'Item'])
.Direction.value_counts(normalize=True)
.rename('ratio').reset_index())

out.loc[out.Direction.eq('U')]

   ID  Item Direction     ratio
1 1 ball U 0.500000
2 1 box U 0.666667
6 2 box U 0.333333

关于python - 按多列groupby进行值计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52120601/

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