我在python中创建一个带有pandas数据帧的代码,该数据帧将每小时数据的值从上午12点到凌晨3点平均一个月,然后从每列中减去每月平均值。代码从csv文件中读取数据。
数据样本
DateTime C1 C2 C3 C4 C5 V
11/1/2014 0:00 1.12 0.96 1.11 0.95 0.93 4.06
11/1/2014 1:00 1.12 0.96 1.11 0.95 0.93 4.06
11/1/2014 2:00 1.12 0.95 1.11 0.95 0.93 4.06
11/1/2014 3:00 1.12 0.95 1.11 0.95 0.93 4.06
11/1/2014 4:00 1.12 0.95 1.11 0.95 0.93 4.06
11/1/2014 5:00 1.12 0.95 1.11 0.95 0.93 4.06
11/1/2014 6:00 1.12 0.95 1.11 0.96 0.93 5.24
11/1/2014 7:00 1.14 0.96 1.12 0.98 0.95 498.64
11/1/2014 8:00 1.22 1.04 1.20 1.05 1.02 623.51
11/1/2014 9:00 1.46 1.28 1.43 1.27 1.25 641.80
所以我用来获得平均值的代码是
df.ix[:,1:5].between_time('0:00', '3:00').resample('1M').mean()
这段代码给出了第1-5列当月12-3点的平均值。现在,我如何从第1-5列中的每个值中减去这些平均值?
答案 0 :(得分:2)
这是你正在寻找的吗?
month_av = df.ix[:,1:5].between_time('0:00', '3:00').resample('1M').mean()
df.ix[:, 1:5] = df.ix[:, 1:5] - month_av.values