用Python计算归一化吉布斯熵
我正在使用一个数据集,其中包含有2到17名经理的团队的信息。对于每个团队经理,数据集都包含一列,指定经理的教育背景,名为“ISCED分类管理器1”、“ISCED分类管理器2”ISCED分类管理器17'。教育背景分为从0到11的类别 我想计算每个团队的教育背景差异。为此,我使用归一化吉布斯熵,其公式如下: 在此公式中,Pi是具有一类教育背景的团队的比例,N是团队规模,在“2015团队规模”一栏中指定 我想用Python编写一个公式,创建一个新的列,其中说明每行(以及每个团队)的标准化吉布斯熵。对于每个教育类别(0-10),公式应通过“ISCED分类管理器1”列,直到“ISCED分类管理器17”,计算团队中具有此分类的经理的比例,并计算公式(pi*ln(pi)/ln(N)) 我试着在Excel中使用Countif函数来计算,但公式变得非常长且缓慢。因此,我想在Python中找到一个解决方案 希望这个解释是清楚的 编辑: 以下是一些示例数据:用Python计算归一化吉布斯熵,python,pandas,loops,jupyter-notebook,entropy,Python,Pandas,Loops,Jupyter Notebook,Entropy,我正在使用一个数据集,其中包含有2到17名经理的团队的信息。对于每个团队经理,数据集都包含一列,指定经理的教育背景,名为“ISCED分类管理器1”、“ISCED分类管理器2”ISCED分类管理器17'。教育背景分为从0到11的类别 我想计算每个团队的教育背景差异。为此,我使用归一化吉布斯熵,其公式如下: 在此公式中,Pi是具有一类教育背景的团队的比例,N是团队规模,在“2015团队规模”一栏中指定 我想用Python编写一个公式,创建一个新的列,其中说明每行(以及每个团队)的标准化吉布斯熵。对
+-------------+-----------+--------------------------------+--------------------------------+--------------------------------+--------------------------------+--------------------------------+--------------------------------+--------------------------------+--------------------------------+--------------------------------+---------------------------------+---------------------------------+---------------------------------+---------------------------------+---------------------------------+---------------------------------+---------------------------------+---------------------------------+
| Team Number | Team Size | ISCED Categorization Manager 1 | ISCED Categorization Manager 2 | ISCED Categorization Manager 3 | ISCED Categorization Manager 4 | ISCED Categorization Manager 5 | ISCED Categorization Manager 6 | ISCED Categorization Manager 7 | ISCED Categorization Manager 8 | ISCED Categorization Manager 9 | ISCED Categorization Manager 10 | ISCED Categorization Manager 11 | ISCED Categorization Manager 12 | ISCED Categorization Manager 13 | ISCED Categorization Manager 14 | ISCED Categorization Manager 15 | ISCED Categorization Manager 16 | ISCED Categorization Manager 17 |
+-------------+-----------+--------------------------------+--------------------------------+--------------------------------+--------------------------------+--------------------------------+--------------------------------+--------------------------------+--------------------------------+--------------------------------+---------------------------------+---------------------------------+---------------------------------+---------------------------------+---------------------------------+---------------------------------+---------------------------------+---------------------------------+
| 1 | 3 | 1 | 5 | 9 | | | | | | | | | | | | | | |
| 2 | 5 | 9 | 9 | 9 | 9 | 9 | | | | | | | | | | | | |
| 3 | 17 | 2 | 2 | 4 | 2 | 4 | 4 | 2 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 |
| 4 | 5 | 3 | 3 | 5 | 6 | 5 | | | | | | | | | | | | |
+-------------+-----------+--------------------------------+--------------------------------+--------------------------------+--------------------------------+--------------------------------+--------------------------------+--------------------------------+--------------------------------+--------------------------------+---------------------------------+---------------------------------+---------------------------------+---------------------------------+---------------------------------+---------------------------------+---------------------------------+---------------------------------+
在python中,所有空单元格都是NaN。
对于该数据,归一化吉布斯熵输出应为:
第1组:1
第2组:0
第三组:0.338….>=-1*总和((10/17)*LN(10/17)/LN(17)),((4/17)*LN(4/17)/LN(17)),((3/17)*LN(3/17)/LN(17)))
第四组:0.6554….>=-1*SUM(((2/5)*LN(2/5)/LN(5)),((2/5)*LN(2/5)/LN(5)),((1/5)*LN(1/5)/LN(5))你能添加一些示例数据和预期结果吗?那么我可以帮你了嗨,谢谢你的回答!我添加了一些示例数据@tommclean请阅读(特别是关于图片)。对不起,我是堆栈溢出新手。我试图编辑示例数据,使其符合指导原则