Python /熊猫:跨数据框的复杂Excel SUMIFS

时间:2019-02-19 20:48:35

标签: python pandas dataframe sumifs

我正在处理两个数据框,其中一个叫做Sales,如图所示 enter image description here

还有另一个数据帧,称为Claims,如图所示 enter image description here

我想在另一个名为“ Subset”的数据框中创建一个名为“ SUMIFS”的新列(即Subset ['SUMIFS'] = ...),我想知道是否可以执行像SUMIFS这样的Excel。在熊猫中跨数据框进行操作。 SUMIFS的标准为:

范围-销售['车辆计数']

条件1-销售额['汽车生产月/年'] =索赔['汽车生产月/年']

条件2-销售额['自运行日期开始的DIS'] <索赔['索赔DIS']

这是电子表格形式的销售数据框

enter image description here

这是电子表格形式的Claims数据框

enter image description here

最后,这是我在excel中使用的原始公式,我想将其转换为Python:= SUMIFS(Sales!$ D $ 2:$ D $ 1156,Sales!$ A $ 2:$ A $ 1156,索赔!B2,销售!$ E $ 2:$ E $ 1156,<“&Claims!O2)

1 个答案:

答案 0 :(得分:0)

如果您已经在Python中拥有两个数据框,则只需执行此操作即可。注意:仅当两个数据框都已排序时,此方法才有效。 (如果您有ID列,请在运行以下代码之前对此进行排序)

Sales['Vehicle Count'][
(Sales['Vehicle Production Month/Year'] == Claims['Vehicle Production Month/Year'])
& ['DIS since RUN DATE'] < Claims['Claim DIS'])
].sum()

我本质上是按两个if条件过滤数据,所以剩下的就是您想要的条件。您要做的就是总结一下。 (这是直接比较,另一个系列是整个系列)