Pandas:为插图p选择多个组

2024-04-19 01:43:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个组数据框(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

Tags: 数据nonedf列表fooplot方式bar
1条回答
网友
1楼 · 发布于 2024-04-19 01:43:24

这就是你要找的吗?你知道吗

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)]

这将返回一个数据帧,其中的列至少有一个元素低于截止值,然后您可以对其执行任何操作。你知道吗

也许我没有得到要求

相关问题 更多 >