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

香努

我有一个数据框如下:

import pandas as pd 
import numpy as np
import datetime

# intialise data of lists. 
data = {'group'      :["A","A","B","B","B"],
        'A1_val'     :[4,5,7,6,5],
        'A1M_val'     :[10,100,100,10,1],
        'AB_val'     :[4,5,7,6,5],
        'ABM_val'     :[10,100,100,10,1],
        'AM_VAL'     : [4,5,7,6,5]
       } 

# Create DataFrame 
df1 = pd.DataFrame(data) 
df1

    group   A1_val  A1M_val AB_val  ABM_val AM_VAL
0   A       4       10      4       10       4
1   A       5       100     5       100      5
2   B       7       100     7       100      7
3   B       6       10      6       10       6
4   B       5       1       5       1        5

步骤1:我要创建如下列:A1_agg_val = A1_val和A1M_val的总和(从列中剥离M,如果名称匹配,则求和)

同样,AB_agg_val = AB_val + ABM_val

由于没有与“ AM_VAL”匹配的列,因此AM_agg_val = AM_val

My expected output:

    group   A1_val  A1M_val AB_val  ABM_val AM_VAL  A1_AGG_val  AB_AGG_val  A_AGG_val
0   A       4       10      4       10       4      14          14          4
1   A       5       100     5       100      5      105         105         5
2   B       7       100     7       100      7      107         107         7
3   B       6       10      6       10       6      16          16          6
4   B       5       1       5       1        5      6           6           5
ky

您可以在上使用groupby axis=1

out = (df1.assign(**df1.loc[:,df1.columns.str.lower().str.endswith('_val')]
       .groupby(lambda x: x[:2],axis=1).sum().add_suffix('_agg_value')))

print(out)

  group  A1_val  A1M_val  AB_val  ABM_val  AM_VAL  A1_agg_value  AB_agg_value  \
0     A       4       10       4       10       4            14            14   
1     A       5      100       5      100       5           105           105   
2     B       7      100       7      100       7           107           107   
3     B       6       10       6       10       6            16            16   
4     B       5        1       5        1       5             6             6   

   AM_agg_value  
0             4  
1             5  
2             7  
3             6  
4             5  

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据数据框的其他列创建一个新的pandas数据框列

根据其他列行中的过滤值,在pandas数据框中创建一个新列

根据现有数据框中的其他列创建一个新列

根据其他两个数据框创建一个额外的列

创建一个基于数据框中其他列的值创建新列的函数

根据pyspark数据框中的其他列的值聚合一列

将每列除以其他每列,并根据结果创建一个新的数据框

熊猫数据框基于其他数据框的列创建一个新列

根据 R 中数据框中所有其他列中的字符串值,使用 dplyr 创建一个新列

Pandas数据框:使用其他2列创建一个新列,该列是自定义函数

如何根据熊猫中的其他数据框值更新一个数据框列?

根据其他列值从数据框列中的列表中删除最后一个元素

如何根据其他两列中的重复项获取一个数据框列中的范围?

根据其他列中的值在python 3(pandas)数据框中创建新列

根据多种条件在pandas数据框中创建一个新列

根据多个不同的条件在 pandas 数据框中创建了一个新列

根据不同条件在Pandas数据框中创建一个新列

根据其他列创建一个新列

创建一个新的数据框列,该列是其他列的组合

根据其他两列中的字符串创建pandas数据框列

根据pandas数据框中的其他列创建新列

根据其他列值/ Pandas -Python 在数据框中创建 ID 列

从其他具有相似索引的数据框的列创建一个熊猫数据框

根据其他数据框值创建一列

根据其他列的输入在数据框中创建一列

如何在 Pandas 数据框中创建一个新列,其值由同一行中的其他列确定

从Pandas数据框中的其他列创建新列

基于来自另一个数据框的其他列创建新列

根据Pandas数据框中的其他三列更改一列的值