【发布时间】:2020-06-12 17:58:14
【问题描述】:
我有一个格式如下的数据框:
template is_a is_b is_c is_d is_e
0 cv_template 0 1 0 0 0
1 topic_template 1 0 0 0 0
2 model_template 1 0 0 0 0
3 model_template 0 1 0 0 0
我想按template 分组并聚合is_ 列,这些列是每个template 的二进制值。
即在上面的示例中,输出将是:
template is_a is_b is_c is_d is_e
0 cv_template 0 1 0 0 0
1 topic_template 1 0 0 0 0
2 model_template 1 1 0 0 0
我目前的解决方案是这样做:
df.groupby('template', as_index=False)['is_a', 'is_b', 'is_c', 'is_d'].max()
但是,在处理大型数据集时,分组依据很慢。我想知道是否有更好的方法可以加快速度。
【问题讨论】:
-
你的解决方案是合理的。你的数据集有多大?它运行多长时间?
-
@QuangHoang,它很大。 ~50m 行。任何一点点优化都会很方便。
标签: python pandas numpy group-by pandas-groupby