如何删除pandas(.resample)计算出的一些周均值?

How to delete some of the mean weekly values calculated by pandas (.resample)?

我有一个数据集,需要计算日平均值和周平均值。我知道这可以通过 Pandas 来完成。以下是我目前的数据和代码;

date                T1      T2      T3
12/17/13 00:28:38   19      23.1    7.3
12/17/13 00:58:38   19      22.9    7.3
12/17/13 01:28:38   18.9    22.8    6.3
12/17/13 01:58:38   18.9    23.1    6.3
12/17/13 02:28:38   18.8    23      6.3
12/17/13 02:58:38   18.8    22.9    6.3
.......
12/18/13 00:28:07   19.5    22.4    5.3
12/18/13 00:58:08   19.4    22.3    5.3
12/18/13 01:28:07   19.4    22.1    5.3
.......
3/22/14 16:55:18    17.7    20.6    10.1
3/22/14 17:08:31    17.7    20.6    10.1
3/22/14 17:26:04    17.6    20.5    8
3/22/14 17:56:04    17.7    20.5    7

我现在的代码是;

import pandas as pd
Temp=pd.read_csv("Book1.csv",parse_dates=['date'])  
Temp=Temp.set_index('date')
In [25]: Temp_plot.head()
Temp_plot=Temp.resample('W',how='mean')
Temp_plot.head()
Out[25]:
T1  T2  T3
date            
2013-12-22  18.740345   35.055517   7.532414
2013-12-29  14.501770   14.950442   6.497935
2014-01-05  13.135207   14.064793   7.795858
2014-01-12  17.296154   38.503550   7.827219
2014-01-19  18.217699   38.892625   6.952212

现在的问题是我必须删除一些假期的每周平均值,这些值不应包含在结果平均值中。我应该有一个包含不应包含的日期的列表,然后比较 Temp_plot 中的值吗?

编辑

我已经按照评论中的建议添加了一个列表 Wase = ["2013-12-22","2014-01-05"],并使用了 Temp_plot1 = Temp_plot.drop(Wase) 现在我遇到了任何错误,显示 ValueError: labels ['2013-12-22' '2014-01-05'] not contained in axis。 知道如何删除此错误,因为我必须删除包含列表中日期的行。

您需要使用 dt.date(year, month, day) 创建假期日历。然后使用如下所示的列表理解结构从索引中过滤假期。最后,您 select 使用 .ix 这些过滤日期,其中 selects 数据来自基于索引值的数据框。

import datetime as dt

holidays = [dt.date(2015, 12, 25), ...] 
idx = [timestamp for timestamp in Temp.index if timestamp.date() not in holidays]
Temp_plot = Temp.ix[idx].resample('W', how='mean')