问题描述
我正在尝试理解聚合函数并处理数据
我有一个名为df3的数据框,已在其中应用了函数bellow-
import pandas as pd
a = df3.merge(pd.DataFrame(df3.groupby('SBK')['CountRecs'].sum()),on='SBK')
df3['percent'] = (a['CountRecs_x']/a['CountRecs_y']) *100
df3
Out[126]:
SBK SSC CountRecs percent
0 99 22 80618 12.416007
1 99 12 75776 11.670288
2 99 121 68746 10.587596
3 99 138 63026 9.706656
4 99 123 50807 7.824804
... ... ... ...
160247 184 1318 1 50.000000
160248 394 2659 1 33.333333
160249 412 757 1 33.333333
160250 357 1312 1 33.333333
160251 202 106 1 100.000000
我面临的一个奇怪问题是这些百分比值不准确。我希望它反映出这样的逻辑:如果SBK为99,则该百分比显示Countrecs除以99的所有countrecs的总数。我注意到此问题,因为对于SBK 202,该百分比显示为100,但这是不可能的,因为SBK 202在我的数据框中显示了很多次。该百分比应该远低于100%。假设有两次202,第一个202 countrec是104,而这个是106。那么第一个countrec旁边显示的百分比是104/210 X 100,下一个是106/210 X 100。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)