冗余稀疏(3NF)数据结构

时间:2020-07-08 16:19:18

标签: python arrays pandas dataframe data-structures

给出以下事件表:

+---------+-------------+----------+----------+-----------+
| Case ID | Activity ID | Resource | Firm     | Timestamp |
+---------+-------------+----------+----------+-----------+
| 1       | A           | Alice    | BMW      | 20:21     |
+---------+-------------+----------+----------+-----------+
| 1       | B           | Bob      | BMW      | 20:24     |
+---------+-------------+----------+----------+-----------+
| 2       | A           | Alice    | Mercedes | 10:45     |
+---------+-------------+----------+----------+-----------+
| 2       | C           | Bob      | Mercedes | 11:23     |
+---------+-------------+----------+----------+-----------+
| 3       | B           | Alice    | Mercedes | 11:00     |
+---------+-------------+----------+----------+-----------+
| 3       | C           | Bob      | Mercedes | 23:45     |
+---------+-------------+----------+----------+-----------+

我们可以观察到,如果我们按Case ID对条目进行分组,最终将得到每个Case ID的特定信息(例如Firm)以及每个特定的信息事件(例如Activity IDResourceTimestamp)。

将所有内容存储在当前表中,至少重复一次值BMWMercedes。现在,对于每个Case ID具有很多事件的数据集,我们将拥有更多的冗余信息。

我想要的是此表的一种稀疏表示形式,在这里我不存储重复项,而可能只引用它们。我仍然想保留过滤和排序功能,例如完整表(如熊猫的数据框)带来的功能。

我的问题是,是否有已经建立的内存中数据结构和/或库已经实现了这样的功能。也许熊猫已经做到了,但是我还没有弄清楚。

感谢任何帮助或指示。

更新1

正如@HighPerformanceMark指出的那样,您可以将我的需求表达为类似于一组3个表的数据结构。一个用于Case ID特定的属性,另一个用于事件特定的属性,最后一个表将键从前者映射到后者。

我最初的问题仍然存在:是否已经存在可以实现的高效数据结构,或者是否存在用于我的用例的库。如果我做出一个大胆的猜测,我可以想象一个3个熊猫数据结构的组合,如前段所述,尽管我不确定如何执行上述操作(过滤),但我不确定。 >

0 个答案:

没有答案
相关问题