2017-09-26 8 views
0

TimeDeltaまたは別のオブジェクトから始まるDataFrame.resample( 'T'、 '3W'、 '2D'、etcなど)によって受け入れられるオフセットルール文字列を生成する方法はありますか時間周波数を表す?パンダ再サンプリング:TimeDeltaからオフセットルール文字列を生成する方法

私はDataFrame.resampleがTimeDeltaを受け入れることができると知っていますが、独自の関数を作成することなくプログラムで文字列を生成する方法を知りたいと思います。

td = pd.TimeDelta('3min') 
str(td) 

出力

'0 days 00:03:00' 

実は私はオフセットルール文字列を取得したいと思います。例えば'3T' docsそのSTRを説明

+0

あなたは何を意味するかの例を与えることができますか?おそらく '.resample'にもリンクしていますか? – MattR

答えて

1

(T)

の形式で文字列を返し[D日[S]、] [H] H:MM:SS [.UUUUUU]、D負のtについては負である。

timedeltaは、ユーザーが(簡単に)数値出力をそのような形式にフォーマットすることなく '3W'のような出力をサポートするかどうかを知りたがっていました。いいえ、それはそのようなサポートを提供しません。

このような関数を記述するときは、to_perioddelta()が役に立ちます。

0

他の誰かが私のような、独自の関数を記述する必要がある場合は、ここでのコードは次のとおりです。

def timedelta_to_string(timedelta): 
    """ 
    Converts a pandas.Timedelta to a string rappresentation 
    compatible with pandas.Timedelta constructor format 
    """ 
    c = timedelta.components 
    format = '' 
    if c.days != 0: 
     format += '%dD' % c.days 
    if c.hours > 0: 
     format += '%dh' % c.hours 
    if c.minutes > 0: 
     format += '%dm' % c.minutes 
    if c.seconds > 0: 
     format += '%ds' % c.seconds 
    if c.milliseconds > 0: 
     format += '%dms' % c.milliseconds 
    if c.microseconds > 0: 
     format += '%dus' % c.microseconds 
    if c.nanoseconds > 0: 
     format += '%dns' % c.nanoseconds 
return format 
関連する問題