python - 如何根据列值减去所有行并将它们添加到额外列中
问题描述
我有一个ndarray
包含 15 列的内容。结构如下图
col_1 col_2 col_3 col_4 Col_5
1 0.01 met_1 DT 2.3 0.78
2 0.01 met_1 DT_2 3.2 0.56
3 0.01 met_1 Lin 3.2 0.02
现在,我想从 中减去col_4
和的col_5
值。最后,我想将它们添加到 2 个新列中。预期输出如下DT
DT_2
Lin
col_1 col_2 col_3 col_4 Col_5 del_col_4 del_col_5
1 0.01 met_1 DT 2.3 0.78 0.90 -0.76
2 0.01 met_1 DT_2 3.2 0.56 0.00 -0.54
3 0.01 met_1 Lin 3.2 0.02 0.00 0.00
请注意,因为我有 15 列并且说我只想要 10 列(然后我还必须在额外的 10 列中添加减法结果)。你能告诉我我该怎么做吗?
解决方案
检查与
col = ['col_4','Col_5']
s = df[col].rsub(df.loc[df.col_3=='Lin',col].iloc[0],axis=1)
df = df.join(s.add_prefix('del_'))
df
Out[171]:
col_1 col_2 col_3 col_4 Col_5 del_col_4 del_Col_5
1 0.01 met_1 DT 2.3 0.78 0.9 -0.76
2 0.01 met_1 DT_2 3.2 0.56 0.0 -0.54
3 0.01 met_1 Lin 3.2 0.02 0.0 0.00
推荐阅读
- c# - 无法使用 Join 方法语法找到外键
- kubernetes - 如何通过更改 CPU 利用率或内存利用率或磁盘压力将 Kubernetes 节点状态从“就绪”更改为“未就绪”?
- terraform - Terraform - 创建 EBS 快照时,如何为帐号提供权限?
- docker - 意外的环境准备错误:未能创建运行程序二进制文件:连接期间出错:
- c++ - 可变参数列表是否以空值结尾?
- database - 将 Jmeter 连接到具有两个主机和服务名称的 Oracle 数据库
- mongodb - MongoDB:返回特定文档,但过滤包含数组
- rust - 按字段对结构进行分组
- javascript - 如何从 API 响应中清除我的模板设置为 #comments-list 的所有数据
- javascript - 从ajax获取json数据,处理,返回答案