如何通过多列功能对熊猫行进行分组

医生

我有一个数据记录框,其中记录了建筑物屋顶表面的特征,因此每个建筑物都有多个平面,并带有面积和形式说明。例如

df=pd.DataFrame([[1000, 12, 'slope'],
                [1000, 10, 'flat'],
                [1001, 10, 'slope'],
                [1001, 15, 'flat'],
                [1001, 7, 'slope']],
               index = [1,2,3,4,5],
               columns=['building_id', 'area', 'form'],
               )
df
building_id     area    form
1   1000    12  slope
2   1000    10  flat
3   1001    10  slope
4   1001    15  flat
5   1001    7   slope

我想合并各行,以便每栋建筑物都有一排,总的屋顶面积和主要的屋顶形式-即具有该建筑物最大面积的形式,而不是出现频率最高的形式:

df_out
building_id     area    form
    1   1000    22  slope
    2   1001    32  slope

我需要这样的东西:

group_functions={'area' : ['sum'],
                 'form' : lambda x: find_predominant(x)}
df_out = df.groupby('building_id').agg(group_functions)

find_predominant需要是的函数area,以及form:它返回字符串'flat''slope'取决于哪个对,最大的面积building_id

有什么功能find_predominant还是什么脚本会产生相同的效果?

BEN_YO

您可以sort_values在之后使用和分配值agg

(df.groupby(['building_id','form'])['area']
   .sum()
   .sort_values()
   .reset_index(level=1)
   .groupby(level=0)
   .agg({'form':'last','area':'sum'}))

              form  area
building_id             
1000         slope    22
1001         slope    32

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过自定义功能对熊猫DataFrame进行分组

Excel-DNA:通过 Excel-DNA 的 C API 功能对行进行分组

如何按列值对熊猫数据框的行进行分组?

如何对熊猫中的行进行分组?

如何通过Scala中的自定义功能对大型文本文件中的行进行排序?

熊猫通过多索引列进行堆叠

如何使用Apply功能对列熊猫进行归一化

通过多个索引对熊猫进行汇总和分组

如何根据行中的特定值和熊猫中的另一列对行进行分组?

熊猫通过多列和最大值分组

熊猫通过多列分组,计数和重新采样

熊猫通过多个列分组并计算标准差

熊猫:通过重复的列值对行进行分组,并保持组中每一列的最大绝对值

如何对熊猫数据框的连续行进行分组

使用熊猫对行进行分组时如何屏蔽值?

如何通过对顶行进行分组来合并 excel 行?

MySQL。如何通过多列进行选择

如何通过多个键对JSON数组数据进行分组

如何通过多重内部联接进行分组

熊猫:通过多列进行转置和求和

熊猫按条件对多行进行分组

熊猫-通过多个值分组?

通过多个列对熊猫熊猫数据框进行分组,以查找与上个月相比的百分比变化

如何在一列中对不同的行进行分组?

如何按多列对CSV行进行分组

如何使用lodash groupby或其他功能对以下数据进行分组?

如何在FS2中使用分类器功能对对象进行分组?

如何使用熊猫基于多个列条件对行进行计数?

如何按列条件正确选择熊猫行进行计算