给出以下事件表:
+---------+-------------+----------+----------+-----------+
| 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 ID
,Resource
,Timestamp
)。
将所有内容存储在当前表中,至少重复一次值BMW
和Mercedes
。现在,对于每个Case ID
具有很多事件的数据集,我们将拥有更多的冗余信息。
我想要的是此表的一种稀疏表示形式,在这里我不存储重复项,而可能只引用它们。我仍然想保留过滤和排序功能,例如完整表(如熊猫的数据框)带来的功能。
我的问题是,是否有已经建立的内存中数据结构和/或库已经实现了这样的功能。也许熊猫已经做到了,但是我还没有弄清楚。
感谢任何帮助或指示。
更新1
正如@HighPerformanceMark指出的那样,您可以将我的需求表达为类似于一组3个表的数据结构。一个用于Case ID
特定的属性,另一个用于事件特定的属性,最后一个表将键从前者映射到后者。
我最初的问题仍然存在:是否已经存在可以实现的高效数据结构,或者是否存在用于我的用例的库。如果我做出一个大胆的猜测,我可以想象一个3个熊猫数据结构的组合,如前段所述,尽管我不确定如何执行上述操作(过滤),但我不确定。 >