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