def get_left_bin_edge(self, bin_label):
"""Return left bin edge for a given bin index
:param bin_label: bin label for which to find the left bin edge
:returns: bin edge, can be float, int, timestamp
"""
# check bin specifications and specified value
if not self.bin_specs:
return None
bin_idx = np.int64(bin_label)
if 'bin_edges' in self.bin_specs:
bin_edges = self.bin_specs['bin_edges']
if bin_idx < 0 or bin_idx >= len(bin_edges):
raise RuntimeError('bin label "{}" does not fit in bin edges'.format(bin_label))
bin_edge_left = bin_edges[bin_idx]
else:
width = self.bin_specs['bin_width']
offset = self.bin_specs.get('bin_offset', 0.)
# NOTE: this notation also works with timestamps!
bin_edge_left = offset + (bin_idx * width)
return bin_edge_left
评论列表
文章目录