在表中的每一列中添加特定的金额

2024-04-16 18:24:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,看起来像这样:

                    A            B
 2015-05-20 19437808.95 32580962.68

我有一个字典(或数据帧)看起来像这样:

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

我想将数据帧重新索引到月末,如下所示:

                     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

现在我想找出一种方法,把1000加到‘a’中的每一行,随着时间的推移,累积起来,所以2015-05-22实际上是2015-05-20的+2000。你知道吗

我需要在每一行中添加值字典中相应的数量。前几行的输出如下所示:

                     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  

Tags: 数据方法数量字典时间nan
1条回答
网友
1楼 · 发布于 2024-04-16 18:24:13

您可以用字典键值对填充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

相关问题 更多 >