重置熊猫时间戳的时间部分

Hil*_*ill 14 python datetime timestamp pandas

如何重置pandas时间戳的时间部分?

我想重置pandas.Timestamp值的时间部分.
我想我可以使用以下程序来完成它.

  • 步骤1)时间戳到日期时间类型
  • 步骤2)datetime到seconds
  • 步骤3)以秒为单位截断时间部分
  • 步骤4)将秒数带回时间戳

即使我的猜测是正确的,也需要很长时间.有没有直接的方法来实现这一目标?

在[371]中:ts = pd.Timestamp('2014/11/12 13:35')

在[372]中:ts

出[372]:时间戳('2014-11-12 13:35:00')

在[373]中:ts.hour = 0#< - 这就是我想要做的.

jor*_*ris 23

我想你正在寻找这种replace方法(见文档):

In [18]: ts
Out[18]: Timestamp('2014-11-12 13:35:00')

In [19]: ts.replace(hour=0)
Out[19]: Timestamp('2014-11-12 00:35:00')
Run Code Online (Sandbox Code Playgroud)

这是一个继承自的方法 datetime.datetime

如果要重置全职部分,请在replace以下位置指定所有部分:

In [20]: ts.replace(hour=0, minute=0, second=0)
Out[20]: Timestamp('2014-11-12 00:00:00')
Run Code Online (Sandbox Code Playgroud)

还有一种DatetimeIndex.normalize方法,但是在单个时间戳上没有这个(我为此打开了一个问题:https://github.com/pydata/pandas/issues/8794):

In [21]: pd.DatetimeIndex([ts]).normalize()[0]
Out[21]: Timestamp('2014-11-12 00:00:00')
Run Code Online (Sandbox Code Playgroud)


twa*_*lig 1

datetime.datetime不要使用,而是使用datetime.date,它会自动为您截断小时/分钟/秒。

请参阅https://docs.python.org/library/datetime.html#date-objects