我创建了以下熊猫数据框:
ds = {'col1' : [1,1,1,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,4,4,4,4],
'feature1' : [1,1,1,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,4,4,4,4],
'col2' : [12,3,4,5,4,3,2,3,4,6,7,8,3,3,65,4,3,2,32,1,2,3,4,5,32],
}
df = pd.DataFrame(data=ds)
数据框如下所示:
print(df)
col1 feature1 col2
0 1 1 12
1 1 1 3
2 1 1 4
3 1 1 5
4 1 1 4
5 1 1 3
6 1 1 2
7 2 2 3
8 2 2 4
9 2 2 6
10 2 2 7
11 3 3 8
12 3 3 3
13 3 3 3
14 3 3 65
15 3 3 4
16 4 4 3
17 4 4 2
18 4 4 32
19 4 4 1
20 4 4 2
21 4 4 3
22 4 4 4
23 4 4 5
24 4 4 32
我需要创建一个新列(称为sumOfCols
),它是名称以 开头的列中包含的值的总和col
(在上面的示例中,该列feature1
不会包含在计算中)。
生成的数据框如下所示:
有人能帮帮我吗?提前谢谢了。
您可以
filter
使用正则表达式来访问列,sum
然后axis=1
:另一个可能的解决方案:
或者,
输出:
如果您不想使用 RegEx 或者希望它看起来更易读,还有一种方法可以实现这一点
这将动态获取所有不以“col”开头的列的列表,然后将它们从沿列轴的汇总聚合中删除。