熊猫的DataFrame适合这个吗?

时间:2016-06-16 15:27:18

标签: python pandas dataframe multi-index

让我们描绘一下我的情景:

我试图对一组给定样本的几个API进行分析。因此,最后,我在脑海中想象如下:

2D表,其中每行是每个样本的名称,每列是每个API的名称。在每个表格中,我最终会得到一个可变数量的对键值(例如,' 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个标签。

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

  • 所有API中的出现次数
  • Maximum-Miminum得分
  • 仅在API中出现的标签

你看,没有什么比这更复杂了。

我的问题是,作为一个带有熊猫的总菜鸟...... DataFrame是一个很好的方法吗?这种数据安排是正确还是应该改变?

1 个答案:

答案 0 :(得分:1)

是的,您希望使用index级别sample_idapi_id的{​​{3}},然后您有两列包含{{1}和相关的tag。然后,您可以使用value轻松运行您的统计信息,例如。

这可能如下所示:

.groupby(level='api_id').value.max()