【发布时间】:2021-06-23 18:04:29
【问题描述】:
我正在努力在 pandas/NumPy 中获得类似矩阵数据框的东西。
我有以下数据框
| Value | Source | Placement | First |
|---|---|---|---|
| A | GooFeed | 1 | GooFeed |
| A | CyberCyber | 2 | GooFeed |
| A | GooFeed | 3 | GooFeed |
| B | CyberCyber | 1 | CyberCyber |
| B | GooFeed | 2 | CyberCyber |
| C | WowFeed | 1 | WowFeed |
| C | WowFeed | 2 | WowFeed |
| C | CyberCyber | 3 | WowFeed |
| C | GooFeed | 4 | WowFeed |
| C | CyberCyber | 5 | WowFeed |
| D | GooFeed | 1 | GooFeed |
我想要实现的是具有彼此数据的提要的百分比。 Placement 中带有 1 的提要首先获得数据(值 A)。 有时,相同的值会出现在多个数据馈送中,来自同一馈送的多个展示位置也会出现在一个值中,例如值 C 和 CyberCyber。但这些值应该是唯一的,不能算作 WowFeed 数据的 2 倍。
我在一个单独的数据框中计算了总值,如下所示:
| Source | Firsts | TotalDistinctValues | FirstSources |
|---|---|---|---|
| GooFeed | 2 | 4 | {'CyberCyber':1;'WowFeed':1} |
| CyberCyber | 1 | 3 | {'GooFeed':1;'WowFeed':1} |
| WowFeed | 1 | 1 |
我正在寻找的矩阵如下:
| source | GooFeed | CyberCyber | WowFeed | Total |
|---|---|---|---|---|
| GooFeed | 25% | 25% | 50% | |
| CyberCyber | 33% | 33% | 66% | |
| WowFeed | ||||
| Average | 33% | 25% | 58% |
不包括匹配自身的值源的列值的平均值(底行)。就像 GooFeed 的 GooFeed。
总计(右边的外行)应该是它自己的不同值的总和。
我真的不知道这应该如何工作。我是否可以在 pandas/NumPy 中尝试它?
我很高兴得到每一个帮助。
最好的问候
莫里斯
【问题讨论】:
标签: python pandas dataframe numpy matrix