Hi,
I was looking at the recent ENH #4314 and there is a wrong implementation of round
method for datetime.
def round(self, freq): """ return a new Timestamp rounded to this resolution Parameters ---------- freq : a freq string indicating the rouding resolution """ cdef int64_t unit cdef object result, value from pandas.tseries.frequencies import to_offset unit = to_offset(freq).nanos if self.tz is not None: value = self.tz_localize(None).value else: value = self.value result = Timestamp(unit*np.floor(value/unit),unit='ns') if self.tz is not None: result = result.tz_localize(self.tz) return result
You are flooring the nano timestamp instead of rounding. You should replace np.floor
by np.round
.
Also I propose to add floor
and ceil
method to Timestamp in order to have the same behavior that float
. (It is very usefull to get the upper/lower bound for a specific freq, likely more usefull than round)
Do you agree @jreback ?
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4