MCPcopy
hub / github.com/pandas-dev/pandas / _adjust_bin_edges

Method _adjust_bin_edges

pandas/core/resample.py:2635–2669  ·  view source on GitHub ↗
(
        self, binner: DatetimeIndex, ax_values: npt.NDArray[np.int64]
    )

Source from the content-addressed store, hash-verified

2633 return binner, bins, labels
2634
2635 def _adjust_bin_edges(
2636 self, binner: DatetimeIndex, ax_values: npt.NDArray[np.int64]
2637 ) -> tuple[DatetimeIndex, npt.NDArray[np.int64]]:
2638 # Some hacks for > daily data, see #1471, #1458, #1483
2639
2640 if self.freq.name in ("BME", "ME", "W") or self.freq.name.split("-")[0] in (
2641 "BQE",
2642 "BYE",
2643 "QE",
2644 "YE",
2645 "W",
2646 ):
2647 # If the right end-point is on the last day of the month, roll forwards
2648 # until the last moment of that day. Note that we only do this for offsets
2649 # which correspond to the end of a super-daily period - "month start", for
2650 # example, is excluded.
2651 if self.closed == "right":
2652 # GH 21459, GH 9119: Adjust the bins relative to the wall time
2653 edges_dti = binner.tz_localize(None)
2654 edges_dti = (
2655 edges_dti
2656 + Timedelta(days=1).as_unit(edges_dti.unit)
2657 - Timedelta(1, unit=edges_dti.unit).as_unit(edges_dti.unit)
2658 )
2659 bin_edges = edges_dti.tz_localize(binner.tz).asi8
2660 else:
2661 bin_edges = binner.asi8
2662
2663 # intraday values on last day
2664 if bin_edges[-2] > ax_values.max():
2665 bin_edges = bin_edges[:-1]
2666 binner = binner[:-1]
2667 else:
2668 bin_edges = binner.asi8
2669 return binner, bin_edges
2670
2671 def _get_time_delta_bins(self, ax: TimedeltaIndex):
2672 if not isinstance(ax, TimedeltaIndex):

Callers 1

_get_time_binsMethod · 0.95

Calls 4

splitMethod · 0.80
tz_localizeMethod · 0.45
as_unitMethod · 0.45
maxMethod · 0.45

Tested by

no test coverage detected