我是python的新手,因此非常感谢一些前进的想法
问题:我有44个地点,每天生产数据(15分钟间隔),为dec到6月。一天的总数据点应为4224(44 [位置] * 4 [15个间隔] * 24 [小时]),但情况并非如此,并且缺少一些数据。我需要过滤这些日期。
我在csv文件中的示例数据如下所示:日期范围从十二月到六月
datetime production
0 07-12-15 0:15 240
1 07-12-15 0:15 328
2 07-12-15 0:15 54
3 07-12-15 0:30 103
4 07-12-15 0:30 10
这只是了解数据格式的样本(实际文件要到2016年6月),0:15是15分钟时间步,0是小时,
我的草稿代码:
df=pd.read_csv("file_path")
df.set_index('datetime',inplace=True)
startdate = pd.Timestamp('2015-12-1 00:15:00', tz='UTC')
enddate = pd.Timestamp('2016-06-30 22:00:00', tz='UTC')
daterange = pd.date_range(start=startdate, end=enddate, freq='15T', tz='UTC')
for row in df.iterrows():
for single_date in daterange:
if single_date = 4224:
print("all fine")
else:
print (single_date)
我仍然在考虑选择日期。
答案 0 :(得分:0)
试试这个:
In [16]: df.ix[df.groupby(df['datetime'].dt.date)['production'].transform('nunique') < 44 * 4 * 24, 'datetime'].dt.date.unique()
Out[16]: array([datetime.date(2015, 12, 7)], dtype=object)
这将为您提供“有问题”日期的所有行:
df[df.groupby(df['datetime'].dt.date)['production'].transform('nunique') < 44 * 4 * 24]
PS有一个很好的理由让人们问你一个好的可重复的样本数据集 - 用你提供的那个几乎不可能看到代码是否正常工作......