我在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
...
如何从原始值中减去这些聚合?
答案 0 :(得分:1)
对齐这两个DataFrame的一种方法是使用transform
代替agg
:
df - df.resample('1m').transform('mean')
将从每个点中减去相应的平均值。