使用 pandas 的每个季节每个集群的总集群百分比

Posted

技术标签:

【中文标题】使用 pandas 的每个季节每个集群的总集群百分比【英文标题】:Percent of total clusters per cluster per season using pandas 【发布时间】:2022-01-24 05:14:29 【问题描述】:

我有一个看起来像 this 的 pandas DataFrame,总共有 12 个集群。某些集群不会在某个季节出现。

我想创建一个多线图,显示每个季节特定集群的百分比。因此,如果 97-98 赛季有 30 支球队,并且集群 1 中有 10 支球队,那么该值将是 0.33,因为集群 1 占据了所有可能位置的三分之一。

看起来像this

我希望日期集看起来像 this,其中每个集群都有自己的百分比,按百分比计算该季节的集群总数。我尝试使用 pandas groupby 方法获取一堆列表,然后对其使用 value_counts() 但这不起作用,因为循环遍历 df.groupby(['SEASON']) returns tuples, not a Series.

非常感谢

【问题讨论】:

【参考方案1】:

.groupby.value_counts.unstack结合使用:

temp_df = df.groupby(['SEASON'])['Cluster'].value_counts(normalize=True).unstack().fillna(0.0)
temp_df.plot()
print(temp_df.round(2))

Cluster   0     1     2     4     5    6     7     10    11
SEASON                                                     
1996-97  0.1  0.21  0.17  0.21  0.07  0.1  0.03  0.07  0.03
1997-98  0.2  0.00  0.20  0.20  0.00  0.0  0.20  0.20  0.00

【讨论】:

以上是关于使用 pandas 的每个季节每个集群的总集群百分比的主要内容,如果未能解决你的问题,请参考以下文章

WEKA 如何评估集群?

Cassandra 集群与每个节点完全复制

cypher query用于计算层次结构中每个组件的总成本百分比

python使用pandas中的groupby函数和agg函数计算每个分组数据的两个分位数(例如百分之10分位数和百分之90分位数)

使用 Python pandas 根据列值生成每个组的百分比

我们如何在列的每个值中对 pandas 数据框进行二次采样