我有一个像这样的数据集。在我的新数据集中,我想用主列和余数列减去金额列
例如,如果amount
列是4,principal
列是2,remainder
列是3,那么第一个金额列必须从第一个主列和第一个余数列中减去,第二个是第二个主列和第二个余数列,第三个是第三个余数列(因为现在没有更多的主列)。最后一列amount4必须保持与newamount4相同的状态
amount1 amount2 amount3 amount4 principal1 principal2 remainder1 remainder2 remainder3
100 250 150 100 250 100 80 100 100
200 200 350 25 450 100 120 100 50
300 150 450 30 200 100 150 100 100
250 550 550 100 100 200 50 500 200
550 200 650 200 250 200 500 100 500
我的新数据集必须如下所示。请注意,am代表金额,pr代表本金,rem代表余额
newamount1 newamount2 newamount3 newamount4
-230(am1-pr1-rem1) 50(am2-pr2-rem2) 50(am3-rem3) amount4
-370 0 300 amount4
50 50 350 amount4
100 -150 350 amount4
-200 -100 150 amount4
您可以使用
defaultdict
对常用后缀进行分组,然后应用缩减函数(np.subtract.reduce
)以获得输出:您还可以通过groupby进行迭代:
如果您的数据超出
4
,您可以使用下面的代码并进行调整:在分组和聚合之前,可以使用来自pyjanitor的pivot_longer函数来重塑数据;目前,您必须从github安装最新的开发版本:
仅在Pandas中使用函数,我们可以在分组和聚合之前通过堆叠来重塑数据:
相关问题 更多 >
编程相关推荐