python - pandas - 从日期时间数据框中的每一天获取第一个和最后一个值

标签 python pandas pandas-groupby

我有一个不包括周六和周日的一个月的数据框,每 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

最佳答案

这是一种方法:

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

关于python - pandas - 从日期时间数据框中的每一天获取第一个和最后一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52909610/

相关文章:

python - MSSQL 中插入时的 SQLAlchemy 回滚

Pandas groupby agg 应用具有多个参数的函数

Pandas - 用 groupby 扩展均值

python - df.groupby(...).agg(set) 与 df.groupby(...).agg(lambda x : set(x)) 相比产生不同的结果

python - 以相反的顺序从numpy数组中获取一些元素

Python GTK3 工具栏加速器不起作用

python - 如何将 Pandas Dataframe 写入 Django 模型

python - 多列的DataFrame tolist

python - 如何在 Ubuntu 中以 sudo 权限运行 PyQt 应用程序并保持正常用户风格

python - 使用 Lambda 函数 Pandas 设置列值