在将函数应用于熊猫数据框中的值时,奇怪的百分比值不正确

问题描述

我正在尝试理解聚合函数并处理数据

我有一个名为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 (将#修改为@)