python - 将 pandas 日期时间列向下舍入到前一分钟
问题描述
我的数据框如下所示:
price timestamp amount side
0 0.001728 2019-05-01 22:48:49.082 29.0 buy
1 0.001729 2019-05-01 21:26:22.078 31.0 sell
2 0.001730 2019-05-01 18:05:30.953 32.0 buy
3 0.001726 2019-05-01 18:05:40.412 32.0 sell
4 0.001730 2019-05-01 16:59:51.127 32.0 sell
5 0.001741 2019-05-01 12:23:19.957 32.0 buy
我想要的是以下内容:
price timestamp amount side
0 0.001728 2019-05-01 22:48:00 29.0 buy
1 0.001729 2019-05-01 21:26:00 31.0 sell
2 0.001730 2019-05-01 18:05:00 32.0 buy
3 0.001726 2019-05-01 18:05:00 32.0 sell
4 0.001730 2019-05-01 16:59:00 32.0 sell
5 0.001741 2019-05-01 12:23:00 32.0 buy
我尝试了什么:
df['timestamp'] = pd.to_datetime(df['timestamp'], unit='%Y%m%d %H:%M')
但它并没有改变我的数据框......知道为什么吗?谢谢!
解决方案
尝试使用以下方法将地板铺到前一分钟dt.floor
:
pd.to_datetime(df['timestamp'], errors='coerce').dt.floor('min')
0 2019-05-01 22:48:00
1 2019-05-01 21:26:00
2 2019-05-01 18:05:00
3 2019-05-01 18:05:00
4 2019-05-01 16:59:00
5 2019-05-01 12:23:00
Name: timestamp, dtype: datetime64[ns]
df.assign(
timestamp=pd.to_datetime(df['timestamp'], errors='coerce').dt.floor('min'))
price timestamp amount side
0 0.001728 2019-05-01 22:48:00 29.0 buy
1 0.001729 2019-05-01 21:26:00 31.0 sell
2 0.001730 2019-05-01 18:05:00 32.0 buy
3 0.001726 2019-05-01 18:05:00 32.0 sell
4 0.001730 2019-05-01 16:59:00 32.0 sell
5 0.001741 2019-05-01 12:23:00 32.0 buy
推荐阅读
- git - git 中是否有可能只忽略文件中的特定更改,例如数字?
- angular - 当资源部件发生变化时如何停止自动重新加载?
- c++ - c++ 将 typedef 与 LegacyRandomAccessIterator 一起使用
- dax - DAX-如何实现每个类别的年初至今?
- android - 如何将我的 Android 应用程序与 mongodb.atlas 连接?
- android - 如何为 App Store 添加关联域?- 用于 App Store Connect 的 app-ads.txt 文件
- rpm-spec - 如何在 rpm 规范中自动创建许多子包
- android - 我得到了 java.lang.IllegalStateException: 更新 androidX 库时没有活动错误
- java - 反向单链表
- amazon-web-services - Alexa 请求客户联系访问被拒绝