我有一个pandas DataFrame(df
),其中的信息我想根据另一个pandas DataFrame(dfIdx
)中具有相同列和索引的信息求和。尤其是,如果df
采用以下形式:
df = pd.DataFrame([[172770, 1442, 114581],[35464, 67062, 175285],[124399, 14294, 44104],[50608, 58802, 189253],[1000, 10000, 100000]],columns=['A','B','C'])
以及以下形式的dfIdx:
^{pr2}$我希望结果是df
中位于dfIdx
中值为1
的行的累计和。所以结果应该是:
A B C
0 0 0 114581
1 0 0 0
2 0 82798 0
3 383241 58802 0
4 0 0 508642
对于额外的学分,我想灵活地确定累计金额包括供款的时间。例如,如果累积和的窗口是1
,那么我最多只想包括前一行,给出结果:
A B C
0 0 0 114581
1 0 0 0
2 0 81356 0
3 175007 58802 0
4 0 0 289253
我意识到我给出的原始示例并没有提供我想要的所有行为示例,因此,建议的解决方案是不完整的。我用另一行扩充了数据,以提供更多不同的行为。在
编辑以满足新要求并扩展数据集
输出:
^{pr2}$额外学分更新:
输出:
注意:您使用
reversed
进行的观察非常接近。我也在做同样的事情。这一切都是关于你如何分组的。在让我们试试:
输出:
对于“额外学分”,其中n=1,我们使用2的滚动周期:
输出:
怎么做的?在
步骤1在dfIdx中获取分组:
步骤2使用该分组对df执行“transform”或“rolling”。在
步骤3让我们屏蔽或替换dfIdx中与0对齐的值,我们可以使用多个
测向_出去。穆尔(dfIdx)
相关问题 更多 >
编程相关推荐