gpt4 book ai didi

python - Pandas GroupBy 使用另一个单热编码/重叠掩码的 DataFrame

转载 作者:行者123 更新时间:2023-11-28 20:31:38 25 4
gpt4 key购买 nike

我有两个数据框,其中包含对列的行和特征(或组成员)的观察,例如:

> data_df

a b c
A 1 2 1
B 0 1 3
C 0 0 1
D 2 1 1
E 1 1 1

> mask_df

g1 g2
A 0 1
B 1 0
C 1 0
D 1 0
E 0 1

我想根据第二个数据帧 (mask_df) 中的二进制值(掩码)对第一个数据帧 (data_df) 中的值进行分组和聚合(按总和) ).结果应如下(组 x 特征):

> aggr_df

a b c
g1 2 2 5
g2 2 3 2

pandas 有没有办法在单个命令中使用第二个数据帧 (mask_df) 中包含的掩码对第一个数据帧 (data_df) 进行分组?

最佳答案

您可以使用 dotgroupby 以低廉的成本做到这一点:

data_df.groupby(mask_df.dot(mask_df.columns)).sum()

a b c
g1 2 2 5
g2 2 3 2

在哪里,

mask_df.dot(mask_df.columns)

A g2
B g1
C g1
D g1
E g2
dtype: object

假设每一行始终恰好有一列设置为 1,这会很好地工作。

关于python - Pandas GroupBy 使用另一个单热编码/重叠掩码的 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54133662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com