【问题标题】:How to store missing date(15 min interval) points from csv into new file (15 minutes interval) -python 3.5如何将缺少的日期(15分钟间隔)点从csv存储到新文件(15分钟间隔)-python 3.5
【发布时间】:2016-11-24 18:28:12
【问题描述】:

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

我还在考虑日期的选择。

【问题讨论】:

  • 你尝试了什么?
  • 请提供一个小的可重复样本数据集和基于样本的所需输出/数据集 - 这将有助于了解您想要实现的目标
  • 您好,欢迎来到 SO。 - 几个相同的“07-12-15 0:15”是什么?目前,我们没有看到缺失的点,因为所有似乎是日期的项目都是相同的。其中的“0:15”是什么? - 你为什么撤消 MaxU 所做的编辑?
  • 你可以检查this,然后这个问题删除并创建另一个。
  • 我的建议:删除此问题并打开一个新问题,包括您的编辑。有 10 票反对,现在几乎没有人会看。

标签: python pandas dataframe


【解决方案1】:

试试这个:

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 人们要求您提供良好的可重现样本数据集是有充分理由的 - 使用您提供的数据集,几乎不可能看到代码是否正常工作......

【讨论】:

  • 感谢您的建议。给您带来的不便深表歉意,我会确保从下次开始进行更改。
  • 是的,基本框架很有用,只是做了一些小的改动。非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 2020-12-15
相关资源
最近更新 更多