熊猫:为插图选择多个组

时间:2016-07-28 09:45:04

标签: python pandas

我有一个用于以下列方式进行绘图的组数据框(grouped_df):

grouped_df[['col1','col2','col3']].sum().plot(kind='bar')

产生预期的图,其中包含所有三列的分组总和。但是,对于某些组,这些总和与其余组相比非常小,因此不容易在同一条形图中显示(见下图)。

我想为这些群体设置一个插图。试图,

grouped_df[['col1','col2','col3']].sum() < "cut-off"

返回这些组的布尔“列表”,但我不能再用它来切片/选择数据帧的一组子集。

当然,我可以生成两个组列表,然后遍历grouped_df,但我认为这不是解决问题的明智方法。

Example

为了清晰和一致,我提供了一个样本数据框,它将按grpcol分组:

grpcol    col1     col2     col3     comment          
A         0.0505   0.0134   0.0534   foo
B         0.0505   0.0134   0.2034   bar
A         0.0505   0.0134   0.0134   bar
C         0.0505   0.0134   0.0331   None
D         0.0505   0.0134   0.0342   foo
E         0.0505   0.0134   0.2134   baz
F         0.0505   0.0134   0.0302   baz
D         0.0302   0.0134   0.2134   foo
D         0.0204   0.0134   0.0400   foo
G         0.0505   0.0134   0.2200   foo
H         0.0505   0.0134   0.1734   None
H         0.0505   0.0134   0.0073   None

1 个答案:

答案 0 :(得分:2)

这是你在找什么?

def apply_cut_off(x1,x2,x3, CUT_OFF):

    if x1 < CUT_OFF: return False
    elif x2 < CUT_OFF: return False
    elif x3 < CUT_OFF: return False
    return True

grouped_sum = grouped_df[['col1','col2','col3']].sum()


cutoff_df = grouped_sum[ grouped_sum.apply(lambda x: apply_cut_off(x['col1'], x['col2'], x['col3'], YOUR_CUT_OFF), axis=1)]

这将返回一个数据框,其中至少有一个元素位于截止值之下,然后您可以随意使用它。

也许我没有得到要求