如何从Pandas的时间序列中减去聚合值?

时间:2017-09-16 21:01:37

标签: pandas

我在Pandas DataFrame中获得了时间索引数据:

              aapl   googl   msft
Date                         
2016-09-19  113.58  795.39  56.93
2016-09-20  113.57  799.78  56.81
2016-09-21  113.55  805.03  57.76
2016-09-22  114.62  815.95  57.82
2016-09-23  112.71  814.96  57.43
2016-09-26  112.88  802.65  56.90
2016-09-27  113.09  810.73  57.95
2016-09-28  113.95  810.06  58.03
2016-09-29  112.18  802.64  57.40
....

我想计算一个聚合,然后从每个值中减去它。

monthly = df.resample('1m').mean()

                  aapl       googl       msft
Date                                         
2016-09-30  113.318000  806.125000  57.463000
2016-10-31  115.707143  813.651905  58.397619
2016-11-30  110.154286  784.736190  59.925238
2016-12-31  114.335714  800.624286  62.118095
...

如何从原始值中减去这些聚合?

1 个答案:

答案 0 :(得分:1)

对齐这两个DataFrame的一种方法是使用transform代替agg

df - df.resample('1m').transform('mean')

将从每个点中减去相应的平均值。