熊猫:在数据中创建层次结构,然后使用层次结构进行计算

时间:2018-10-31 21:36:36

标签: python pandas dataframe hierarchy

我想问你一个python帮助。 图片上有我这样的数据:

enter image description here

我想知道颜色形状关系的层次结构:

颜色确定层次结构的第一级 像这样确定第二层=确定层:

如果我有颜色“蓝色” +“圆形” =我知道蓝色是形状中的层次1,而圆形也是形状中的第一层次。 当我有“蓝色” +“三角形” =我知道蓝色是1且三角形2。 当我有“红色” +“圆形” =红色是层次结构2时,圆形1 =>红色无论哪种形状都比蓝色高。

我想要实现的是:我想设置一个基本组合,将与之比较其他层次结构组合。 这意味着我将以“蓝色圆形”为基础。 然后,我将比较基准为“蓝色三角形”,然后为“红色圆形”,依此类推。 在比较中,我想向组合的层次结构的新列中添加某些信息:

blue circular = 1.1 
blue triangular = 1.2
...

我的愿景是像我在这里一样从数据框熊猫中收集所有独特的组合:

shape= df['shape']
color = df['color']
combinations = set(list(zip(color,shape)))    

然后,我想通过组合进行操作,以创建新的数据框,在此我将在较低层级组合和较高层级组合之间执行一些比较。

for a,b in enumerate(set(list(zip(color,shape)))):
     df_new = df[(df['color'] == a) & (df['shape'] == b)]

但是现在我真的被困住了,我不知道如何继续。 我考虑过要创建一个字典,在其中存储诸如以下的层次结构:

colors = {'blue': 1, 'red': 2, 'pink': 3}
shapes = {'circular': 1, 'triangular': 2}

然后我将以某种方式将其组合。但是我真的不知道这些选项。

也可能存在不需要我要对其执行任何操作的任何组合的情况。例如,粉红色三角形=不需要标记,因为它是完全不同的类别,我想让她脱离层次结构。

0 个答案:

没有答案
相关问题