如何将缺失日期(间隔15分钟)从csv存储到新文件(15分钟间隔)-python 3.5

时间:2016-07-21 08:57:43

标签: python pandas dataframe

我是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)

我仍然在考虑选择日期。

1 个答案:

答案 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有一个很好的理由让人们问你一个好的可重复的样本数据集 - 用你提供的那个几乎不可能看到代码是否正常工作......