如何重置pandas时间戳的时间部分?
我想重置pandas. Timestamp值中的时间部分。
我想我可以用下面的程序来做。
- 步骤1)时间戳到日期时间类型
- 步骤2)日期时间到秒
- 步骤3)以秒为单位截断时间部分
- 步骤4)将秒数恢复到时间戳
即使我的猜测是正确的,它需要太长的时间来做。有没有一个简单的方法可以实现这个目标?
[371]中:ts = pd.Timestamp('2014/11/12 13:35')
在[372]:ts
出[372]:时间戳('2014 -11-12 13:35:00')
在[373]:ts.hour = 0 # <--这就是我想做的。
6条答案
按热度按时间zvms9eto1#
我想你正在寻找
replace
方法(参见文档):字符串
这是继承自
datetime.datetime
的方法如果要重置全职部分,请在
replace
中指定所有部分:型
还有一个
DatetimeIndex.normalize
方法,但在单个Timestamps上不能使用(我为此开了一个问题:https://github.com/pydata/pandas/issues/8794):型
8fq7wneg2#
请注意,
replace
方法不会更改Timestamp,所以如果你想保留修改后的Timestamp,你必须分配:字符串
注意:ts在上面的代码中没有修改。
型
k5ifujac3#
而不是使用
datetime.datetime
,使用datetime.date
,它会自动为您截断小时/分钟/秒。参见https://docs.python.org/library/datetime.html#date-objects
mxg2im7a4#
字符串
hujrc8aj5#
我建议使用:
字符串
slwdgvem6#
还有
Timestamp.floor
:字符串
但是,在我的机器上,
Timestamp.normalize
几乎是floor
的30倍,Timestamp.replace
甚至比normalize
还快:型