【发布时间】:2019-06-29 15:26:38
【问题描述】:
我试图从 DataFrame B 中一列的值中减去 DataFrame A 中一列的值,但前提是多个列值彼此相等。
假设(虚构):
DataFrame A:
Index Department Speciality TargetMonth Capacity
1 Sales Cars 2019-1 150
2 Sales Cars 2019-2 120
3 Sales Furniture 2019-1 110
4 IT Servers 2019-1 100
DataFrame B:
Index Department Speciality TargetMonth Required
1 Sales Cars 2019-1 100
2 Sales Cars 2019-2 120
3 IT Servers 2019-1 50
4 Sales Furniture 2019-1 50
与 A 相比,我故意将 DataFrame B 中索引 3 和 4 的顺序交换了。我的目标是从 DataFrame A 的容量列中减去 DataFrame B 它的Required 列作为所需的容量小时,并产生另一个不一定需要排序的列表:
Index Department Speciality TargetMonth Result
1 Sales Cars 2019-1 50
2 Sales Cars 2019-2 0
3 Sales Furniture 2019-1 60
4 IT Servers 2019-1 50
因此,从技术上讲,仅减去,并且仅当所有列值相互匹配且不基于顺序时,因为某些行可能在一个列表或另一个列表中丢失。
我可以用一些 for 循环和条件来解决这个问题,但我想有一个干净整洁的 Pandas 方法可以用 .subtract 解决这个问题,尽管它是我目前卡在的“加入”部分。
提前感谢您的宝贵时间。
【问题讨论】:
标签: python python-3.x pandas