我有一个看起来像这样的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
答案 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