首页 > 解决方案 > 如何在 pandas/numpy 中制作百分比矩阵?

问题描述

我正在努力在 pandas/NumPy 中获得类似矩阵数据框的东西。

我有以下数据框

价值 资源 放置 第一的
一个 GooFeed 1 GooFeed
一个 网络网络 2 GooFeed
一个 GooFeed 3 GooFeed
网络网络 1 网络网络
GooFeed 2 网络网络
C 哇喂 1 哇喂
C 哇喂 2 哇喂
C 网络网络 3 哇喂
C GooFeed 4 哇喂
C 网络网络 5 哇喂
D GooFeed 1 GooFeed

我想要实现的是具有彼此数据的提要的百分比。Placement 中带有 1 的提要首先获得数据(值 A)。有时,相同的值会出现在多个数据馈送中,来自同一馈送的多个展示位置也会出现在一个值上,例如值 C 和 Cyber​​Cyber​​。但是这些值应该是唯一的,不能算作 WowFeed 数据的 2 倍。

我在一个单独的数据框中计算了总值,如下所示:

资源 第一 TotalDistinctValues 第一来源
GooFeed 2 4 {'CyberCyber':1;'WowFeed':1}
网络网络 1 3 {'GooFeed':1;'WowFeed':1}
哇喂 1 1

我正在寻找的矩阵如下:

资源 GooFeed 网络网络 哇喂 全部的
GooFeed 25% 25% 50%
网络网络 33% 33% 66%
哇喂
平均 33% 25% 58%

不包括匹配自身的值源的列值的平均值(底行)。就像 GooFeed 的 GooFeed。

Total(右边的外行)应该是它自己的不同值的总和。

我真的不知道这应该如何工作。我是否可以在 pandas/NumPy 中尝试它?

我很高兴每一次帮助。

此致

莫里斯

标签: pythonpandasdataframenumpymatrix

解决方案


我设法与 Piterbargs 一起回答并实现我需要的一切。谢谢皮特巴格!

对于感兴趣的人,我将发布代码,因为我对其进行了一些编辑(注意 - 列/值的不同命名)。

在此处输入图像描述

在此处输入图像描述


推荐阅读