使用pandas聚合基于其他列的结果

卡洛斯

我在pandas agg中寻找一种基于其他列值来查找列值的方法。

例如:我有以下数据框

df = pd.DataFrame({"Project":['A','B','C','D','E'],
                   "Country" :['Brazil','Brazil','Germany','Germany','Argentina'],\
                   "Value":[12,11,14,15,18]})

      Country Project  Value
0     Brazil       A     12
1     Brazil       B     11
2    Germany       C     14
3    Germany       D     15
4  Argentina       E     18

我创建了此聚合:

aggregations = {'Project':{'Number of projects':'count'},
                'Value':{'Mean':'mean',
                         'Max':'max',
                         'Min':'min'}}

df.groupby(['Country']).agg(aggregations)

我想在此聚合中添加一个新列,该列将为项目名称提供最大“值”的名称。预期的结果将是:

                 Project Value        
             Number of Projects  Mean Max Min  Projec_Max  Projec_Min
 Country                        
 Argentina                    1  18.0  18  18           E         E           
 Brazil                       2  11.5  12  11           A         B
 Germany                      2  14.5  15  14           D         C

如何在聚合字典中添加此内容?

提前致谢

Jdehesa

不知道这是否是最好的方法,但似乎可行:

aggregations = {'Project':{'Number of projects':'count'},
                'Value':{'Mean':'mean',
                         'Max':'max',
                         'Min':'min',
                         'Project_Max': lambda x: df['Project'][x.idxmax()],
                         'Project_Min': lambda x: df['Project'][x.idxmin()]}}
df.groupby(['Country']).agg(aggregations)

结果:

                Value                                      Project
          Project_Max Project_Min Max  Mean Min Number of projects
Country                                                           
Argentina           E           E  18  18.0  18                  1
Brazil              A           B  12  11.5  11                  2
Germany             D           C  15  14.5  14                  2

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

基于其他列的 TSQL 聚合值

Pandas:如何聚合具有多个功能的列并将结果添加为其他列?

SQLSERVER分组依据(基于其他列聚合列)

Pandas groupby 使用基于两列的聚合

Pandas DataFrame聚合列,其他列的名称为值

Python Pandas:基于其他列添加列

Pandas DataFrame过滤基于其他列的str列

Pandas 基于其他列重新采样列

Python:pandas DataFrame基于其他列的新列

PySpark:基于其他列的聚合,用列模式填充NA

通过pandas获取基于其他列的值的最新值

如何基于多个组聚合和平均各种行,同时保持其他列不变

Spatialpolygonsdataframe:基于其他列的聚合而不将其转换为数据框?在 r

Python Pandas:基于组内的最大值创建新列,但使用其他(字符串)列中的值

PostgreSQL:基于其他列的合计结果创建生成的列的最佳方法

需要基于其他列值的SQL结果中的列值

根据pandas数据框中的其他列创建一个聚合列

选择使用其他查询的结果作为JSON创建列

猫鼬聚合$ match是否基于其他字段?

如何在Pandas Groupby中消除聚合列的其他行

基于不同其他列的新 Pandas 列,取决于另一列的值

基于其他列的MySQL更新列

SQL返回基于其他列的列

从基于其他列的列获取值

基于其他列的新列

elasticsearch-聚合结果中的其他字段

使用 dplyr 将单个列与所有其他列聚合为条件

使用dplyr聚合数据,列值有条件聚合,依赖于其他列的值

将函数应用于基于其他列的 Pandas 列