форматирование pandas .tseries.offsets.Minute в формате ЧЧ: ММ - PullRequest
0 голосов
/ 13 марта 2020

У меня есть смещение, которое выглядит как pandas .tseries.offsets.Minute

Как строка, она выглядит следующим образом: <34 * минут> или <-35 * минут>

до 00:34 или -00: 35?

Я могу сделать это с разбором и целочисленным делением с 60, но есть ли в pandas средство для манипулирования смещениями таким способом - в идеале также конвертировать 125 в 02:05? Все мои смещения похожи на timeDelta, если это помогает.

def format_min(inmin):
    pat = r'\<([-\d]+)\s*\*\s*Minutes\>'
    mat = re.match(pat,str(inmin))
    orig = int(mat.group(1))
    hr,m = divmod(abs(orig),60) 
    hr = np.sign(orig)*hr
    return f"{hr}:{m}"

mymin = pd.tseries.frequencies.to_offset('-134T')
print(format_min(mymin))
print(mymin)

производит

-2:14
<-134 * Minutes>

-2: 14 - это то, что я хочу, учитывая -134 минуты ввода в выборке, но я надеюсь избежать неприятностей / стабильности / крайних случаев, когда я делаю это сам.

...