python - 删除数据时间戳并仅每小时获取一次数据python
问题描述
我在 csv 文件中有一堆时间戳数据,如下所示:
2012-01-01 00:00:00, data
2012-01-01 00:01:00, data
2012-01-01 00:02:00, data
...
2012-01-01 00:59:00, data
2012-01-01 01:00:00, data
2012-01-01 01:01:00, data
我想每分钟删除一次数据,并且只在 python 中每小时显示一次,如下所示:
2012-01-01 00:00:00, data
2012-01-01 01:00:00, data
2012-01-01 02:00:00, data
任何人都可以帮助我吗?谢谢你。
解决方案
我相信您需要使用 pandas resample
,这是一个如何使用它来实现您想要的输出的示例。但是,请记住,由于这是频率转换期间的重采样操作,因此您必须传递一个函数来了解其他列的行为方式(将与新时间帧对应的所有值相加、计算平均值、计算差异等...... ) 否则你会得到一个DatetimeIndexResample
. 这是一个例子:
import pandas as pd
index = pd.date_range('1/1/2000', periods=9, freq='40T')
series = pd.Series(range(9),index=index)
print(series)
输出:
2000-01-01 00:00:00 0
2000-01-01 00:40:00 1
2000-01-01 01:20:00 2
2000-01-01 02:00:00 3
2000-01-01 02:40:00 4
2000-01-01 03:20:00 5
2000-01-01 04:00:00 6
2000-01-01 04:40:00 7
2000-01-01 05:20:00 8
resample
每小时应用而不通过聚合函数:
print(series.resample('H'))
输出:
DatetimeIndexResampler [freq=<Hour>, axis=0, closed=left, label=left, convention=start, base=0]
通过后.sum()
:
print(series.resample('H').sum())
输出:
2000-01-01 00:00:00 1
2000-01-01 01:00:00 2
2000-01-01 02:00:00 7
2000-01-01 03:00:00 5
2000-01-01 04:00:00 13
2000-01-01 05:00:00 8
Freq: H, dtype: int64
推荐阅读
- c# - 如果找不到元素,不确定如何使用 try catch 处理异常
- java - 如何使用 jUnit/mockito 模拟 Optional.of() 的内部块?
- jquery - 每次点击事件时,jQuery 事件都会增加
- validation - 验证拦截器错误消息未显示在 1905 后台
- android - 使用 Kotlin 从相机/图库中捕获图像并在 Activity/Fragment 中显示
- php - Mysql/PHP 合并两张表
- node.js - 未处理的承诺拒绝猫鼬聚合
- angular - Angular 8:检测对属性的更改
- excel - 用户窗体切换日期值
- logging - EnvoyFilter [ lua filter ] 不在控制台上打印日志