【问题标题】:pandas - getting first and last value from each day in a datetime dataframepandas - 从日期时间数据框中的每一天获取第一个和最后一个值
【发布时间】:2018-10-21 04:18:56
【问题描述】:

我有一个月的数据框,不包括周六和周日,每 1 分钟记录一次。

                         v1         v2  
2017-04-03 09:15:00     35.7       35.4  
2017-04-03 09:16:00     28.7       28.5
      ...               ...        ...
2017-04-03 16:29:00     81.7       81.5
2017-04-03 16:30:00     82.7       82.6
      ...               ...        ...
2017-04-04 09:15:00     24.3       24.2  
2017-04-04 09:16:00     25.6       25.5
      ...               ...        ...
2017-04-04 16:29:00     67.0       67.2
2017-04-04 16:30:00     70.2       70.6
      ...               ...        ...
2017-04-28 09:15:00     31.7       31.4  
2017-04-28 09:16:00     31.5       31.0
      ...               ...        ...
2017-04-28 16:29:00     33.2       33.5
2017-04-28 16:30:00     33.0       33.7

如何重新采样数据框以获取每天的第一个和最后一个值。所需的数据框:

                        v1         v2  
2017-04-03 09:15:00     35.7       35.4  
2017-04-03 16:30:00     82.7       82.6
2017-04-04 09:15:00     24.3       24.2  
2017-04-04 16:30:00     70.2       70.6
      ...               ...        ...
2017-04-28 09:15:00     31.7       31.4  
2017-04-28 16:30:00     33.0       33.7

【问题讨论】:

  • 嗨,您的时间以 16:00 结束 - 我可以假设您的意思是 09:16:00 而不是 00:16:00?是否会始终存在相同的开始时间和结束时间,或者是否会有 09:15:00 或 16:30:00 没有打印的日子?
  • @tbdees 我刚刚编辑了它。时间每天都不一样,我只需要获取每天的第一个和最后一个值

标签: python pandas pandas-groupby


【解决方案1】:

这是一种方法:

res = df.groupby(df.index.date).apply(lambda x: x.iloc[[0, -1]])
res.index = res.index.droplevel(0)

print(res)

                       v1    v2
2017-04-03 09:15:00  35.7  35.4
2017-04-03 16:30:00  82.7  82.6
2017-04-04 09:15:00  24.3  24.2
2017-04-04 16:30:00  70.2  70.6
2017-04-28 09:15:00  31.7  31.4
2017-04-28 16:30:00  33.0  33.7

【讨论】:

    【解决方案2】:

    1) 使用 df.groupby(column-name) 按日期对数据框进行分组 2) 使用 df.drop(..) 删除每组中除第一个和最后一个值之外的所有内容

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-14
      • 2015-01-31
      • 2021-03-04
      • 1970-01-01
      • 1970-01-01
      • 2017-11-28
      • 1970-01-01
      相关资源
      最近更新 更多