2013-08-25 3 views
5

Я заметил, что Pandas знает, как умело форматировать объект timedelta в строку.Форматирование строк timedeltas в Pandas

In [1]: df[column][rows].max() 
Out[1]: 
0 2 days, 02:08:07 
dtype: timedelta64[ns] 

Когда я пытаюсь сделать это вручную, я продолжаю получать строку в наносекундах.

In [2]: df[column][rows].max()[0] 
Out[2]: numpy.timedelta64(180487000000000,'ns') 

In [2]: str(df[column][rows].max()[0]) 
Out[2]: '180487000000000 nanoseconds' 

Я предпочел бы не изобретать колесо, так есть ли способ получить доступ к методу строки форматирования (или саму строку), что панды использует, чтобы показать объект в timedeltax days, hh:mm:ss?

ответ

6

Функция находится here:

pd.tslib.repr_timedelta64 

В действии:

In [11]: pd.tslib.repr_timedelta64(np.timedelta64(180487000000000,'ns')) 
Out[11]: '2 days, 02:08:07' 
+0

Спасибо! Это полезная функция, чтобы иметь –

+4

Могу ли я спросить, откуда вы знаете, что это была функция? Вы хорошо знаете базу кода? У Pandas есть несколько полезных утилит для форматирования строк, поэтому было бы здорово узнать, как их просматривать. –

+1

У меня было чувство, что это будет в tllib (поскольку я знаю базу кода, и это то, где есть материал таймсеров), и нашел ее с полной вкладкой :) –

Смежные вопросы