熊猫的DataFrame适合这个吗?

Is panda's DataFrame suitable for this?

让我们描述一下我的场景:

我正在尝试对给定样本集的多个 API 进行分析。因此,最后,我在脑海中描绘了这样的画面:

二维 table,其中每一行是每个样本的名称,每一列是每个 API 的名称。在每个 table 上,我最终都会得到可变数量的键值对(例如,'dog':0.9)。那么让我们举一个简单的例子

________________________________________________________________________
|row/column |   API 1      |   API 2      |   API  3     |   API 4     |
------------------------------------------------------------------------
|sample1    |{'dog':0.9,   |{'cat':0.3,   |{'dog':0.7,   |{'cat':0.2,  |
|           |'animal': 0.8}|'mammal':0.4} |'mammal':0.3} |'animal':0.9}|
------------------------------------------------------------------------
|sample2    |{'sun':0.6,   |{'sun':0.7,   |{'wind':0.5,  |{'sun':0.1,  |
|           |'beach': 0.3} |'water':0.7}  |'water':0.2}  |'wind':0.3}  |
------------------------------------------------------------------------
|sample3    |{'tenis':0.9, |{'court':0.3, |{'court':0.7, |{'ball':0.2, |
|           |'ball': 0.8}  |'player':0.4} |'tennis':0.3} |'court':0.9} | 
________________________________________________________________________

等等..

元素的数量不会总是 2...它可以是从 0 到 N,但通常不会超过 3-4 个标签。

就是说,之后我想用这些数据做的是简单的计算,比如:

如您所见,没有什么真正复杂的。

我的问题是,作为一个菜鸟 pandas...DataFrame 是一个好方法吗?这样的数据排列好还是要改?

是的,您需要使用 MultiIndex,其中 index 级别包含 sample_idapi_id,然后您有两列包含 tag 和关联的 value。然后您可以轻松地使用 运行 您的统计信息 .groupby(level='api_id').value.max(),例如。

这可能如下所示:

                   tag  value
sample_id api_id             
1         1       tag1      1
2         1       tag2      2
3         1       tag3      3
4         2       tag1      1
5         2       tag2      2
6         2       tag3      3
7         2       tag4      1
8         2       tag5      2
9         2       tag6      3
10        3       tag1      1
11        3       tag2      2
12        3       tag3      3
13        3       tag4      1
14        3       tag5      2
15        4       tag1      3