How can I reset the time part of a pandas timestamp?
I want to reset time part in value of pandas.Timestamp.
I guess I can do it using the following procedure.
Even if my guess is correct, it takes too long to do. Is there a straightforward way to achieve this goal?
In [371]: ts = pd.Timestamp('2014/11/12 13:35')
In [372]: ts
Out[372]: Timestamp('2014-11-12 13:35:00')
In [373]: ts.hour = 0 # <-- this is what I am trying to do.
replace() function is used to replace the member values of the given Timestamp. The function implements datetime. replace, and it also handles nanoseconds.
To remove timestamp, tzinfo has to be set None when calling replace() function. First, create a DateTime object with current time using datetime. now(). The DateTime object was then modified to contain the timezone information as well using the timezone.
I think you are looking for the replace
method (see docs):
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')
This is a method inherited from datetime.datetime
If you want to reset the full time part, you specify all parts in replace
:
In [20]: ts.replace(hour=0, minute=0, second=0) Out[20]: Timestamp('2014-11-12 00:00:00')
There is also a DatetimeIndex.normalize
method, but this isn't available on the individual Timestamps (I opened an issue for that: https://github.com/pydata/pandas/issues/8794):
In [21]: pd.DatetimeIndex([ts]).normalize()[0] Out[21]: Timestamp('2014-11-12 00:00:00')
Instead of using datetime.datetime
, use datetime.date
and it will automatically truncate the hour/minute/second for you.
See https://docs.python.org/library/datetime.html#date-objects
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With