如何获取熊猫群的统计信息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取熊猫群的统计信息相关的知识,希望对你有一定的参考价值。

为了简化,我有一个像这样的数据集:

enter image description here

lst = [
       ["2015", "A"], 
       ["2015", "B"], 
       ["2015", "C"],
       ["2016", "A"],
       ["2016", "A"],
       ["2016", "B"],
       ["2016", "D"]

      ] 

df = pd.DataFrame(lst, columns =["Year", "Item"])

我想生成如下所示的一些统计信息。如何使用熊猫来做到这一点?我的实际数据集包含数以万计的观察值和许多不同的项目。

谢谢!

enter image description here

答案

考虑在所有可能值的数据帧上使用transformmerge进行内联聚合。最后,使用fillna程序进行清理:

from itertools import product
...
years_items_df = pd.DataFrame(product(["2015", "2016"], list("ABCD")), 
                              columns = ["Year", "Item"])

df = (df.assign(Count = lambda x: x.groupby(["Year", "Item"])["Year"].transform("count"),
                AnnualCount = lambda x: x.groupby(["Year"])["Year"].transform("count"))
        .drop_duplicates()
        .merge(years_items_df, on=["Year", "Item"], how="right")
        .sort_values(["Year", "Item"])
        .assign(Count = lambda x: x['Count'].fillna(0),
                AnnualCount = lambda x: x['AnnualCount'].ffill(),
                Percent = lambda x: x["Count"].div(x["AnnualCount"]))
        .reset_index(drop=True)
      )

df
#    Year Item  Count  AnnualCount   Percent
# 0  2015    A    1.0          3.0  0.333333
# 1  2015    B    1.0          3.0  0.333333
# 2  2015    C    1.0          3.0  0.333333
# 3  2015    D    0.0          3.0  0.000000
# 4  2016    A    2.0          4.0  0.500000
# 5  2016    B    1.0          4.0  0.250000
# 6  2016    C    0.0          4.0  0.000000
# 7  2016    D    1.0          4.0  0.250000

以上是关于如何获取熊猫群的统计信息的主要内容,如果未能解决你的问题,请参考以下文章

iphone inapp购买编程?如何从苹果获取统计信息

如何从 System.Diagnostics.Process 停止进程并最终获取统计信息

将数组数据转换为熊猫数据框[重复]

python 熊猫片段

python 有用的熊猫片段

python 有用的熊猫片段