为pandas中的每一列添加特定金额

时间:2015-05-22 16:49:27

标签: python pandas

我有一个看起来像这样的DataFrame:

                    A            B
 2015-05-20 19437808.95 32580962.68

我有一个字典(或DataFrame),如下所示:

  

{' A':1000,' B':2000}

我想将DataFrame重新索引到月底,如下所示:

                     A           B
2015-05-20 19437808.95 32580962.68
2015-05-21         nan         nan
2015-05-22         nan         nan
2015-05-23         nan         nan
2015-05-24         nan         nan
2015-05-25         nan         nan
2015-05-26         nan         nan
2015-05-27         nan         nan
2015-05-28         nan         nan
2015-05-29         nan         nan
2015-05-30         nan         nan
2015-05-31         nan         nan

现在我试图找出一种方法,在A'中逐行累加每一行1000,所以2015-05-22实际上是+ 2000 2015年5月20日

我需要通过值字典中的相应数量添加到每一行。对于前几行,输出看起来像这样:

                     A           B
2015-05-20 19437808.95 32580962.68
2015-05-21 19438808.95 32582962.68            
2015-05-22 19439808.95 32584962.68  
2015-05-23 19440808.95 32586962.68  

1 个答案:

答案 0 :(得分:2)

您可以使用字典键值对填充NaNs,然后像 - df.fillna(value=key).cumsum()那样获取累积总和

In [225]: key = {'A': 1000, 'B': 2000}

In [226]: df.fillna(value=key).cumsum()
Out[226]:
                      A            B
2015-05-20  19437808.95  32580962.68
2015-05-21  19438808.95  32582962.68
2015-05-22  19439808.95  32584962.68
2015-05-23  19440808.95  32586962.68
2015-05-24  19441808.95  32588962.68
2015-05-25  19442808.95  32590962.68
2015-05-26  19443808.95  32592962.68
2015-05-27  19444808.95  32594962.68
2015-05-28  19445808.95  32596962.68
2015-05-29  19446808.95  32598962.68
2015-05-30  19447808.95  32600962.68
2015-05-31  19448808.95  32602962.68

初始df

In [224]: df
Out[224]:
                      A            B
2015-05-20  19437808.95  32580962.68
2015-05-21          NaN          NaN
2015-05-22          NaN          NaN
2015-05-23          NaN          NaN
2015-05-24          NaN          NaN
2015-05-25          NaN          NaN
2015-05-26          NaN          NaN
2015-05-27          NaN          NaN
2015-05-28          NaN          NaN
2015-05-29          NaN          NaN
2015-05-30          NaN          NaN
2015-05-31          NaN          NaN