Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将csv中丢失的日期(间隔15分钟)点存储到新文件(间隔15分钟)-python 3.5_Python_Pandas_Dataframe - Fatal编程技术网

如何将csv中丢失的日期(间隔15分钟)点存储到新文件(间隔15分钟)-python 3.5

如何将csv中丢失的日期(间隔15分钟)点存储到新文件(间隔15分钟)-python 3.5,python,pandas,dataframe,Python,Pandas,Dataframe,我是python新手,因此非常感谢您提出一些前进的想法 问题:从12月到6月,我有44个地点每天都有生产数据(间隔15分钟)。一天的总数据点应为4224(44[位置]*4[15间隔]*24[一天中的小时]),但情况并非如此,一些数据缺失。我需要把这些日期过滤掉 csv文件中的示例数据如下所示:日期范围从12月到6月 datetime production 0 07-12-15 0:15 240 1 07-12-15 0:15 328

我是python新手,因此非常感谢您提出一些前进的想法

问题:从12月到6月,我有44个地点每天都有生产数据(间隔15分钟)。一天的总数据点应为4224(44[位置]*4[15间隔]*24[一天中的小时]),但情况并非如此,一些数据缺失。我需要把这些日期过滤掉

csv文件中的示例数据如下所示:日期范围从12月到6月

 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)
我还在考虑日期的选择。

试试这个:

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)
[16]中的
df.ix[df.groupby(df['datetime'].dt.date)['production'].transform('nunique')<44*4*24,'datetime'].dt.date.unique()
Out[16]:数组([datetime.date(2015,12,7)],dtype=object)
这将为您提供“有问题”天数的所有行:

df[df.groupby(df['datetime'].dt.date]['production'].transform('nunique')<44*4*24]

PS有一个很好的理由,为什么人们要求你提供一个好的可复制的样本数据集-使用你提供的样本数据集,很难看出代码是否正常工作

您尝试了什么?请提供一个小的可复制样本数据集和基于样本的所需输出/数据集-这将有助于了解您想要实现的目标Hello,欢迎加入。-几个相同的“07-12-15 0:15”是什么?目前,我们没有发现遗漏点,因为所有看起来是日期的项目都是相同的。他们的“0:15”是什么为什么要撤消MaxU所做的编辑?您可以检查,然后删除此问题并创建另一个问题。我的建议:删除此问题并打开一个新问题,包括您的编辑。由于有10张反对票,现在不太可能有人看了。谢谢你的建议。对于给您带来的不便,我深表歉意,我将确保从下次开始进行更改。是的,基本框架非常有用,只是做了一些小的更改。谢谢
df[df.groupby(df['datetime'].dt.date)['production'].transform('nunique') < 44 * 4 * 24]