2017-09-26 60 views
0

是否有方法生成从DataFrame.resample(例如'T','3W','2D',etc)接受的偏移规则字符串,从TimeDelta或另一个对象代表时间频率?熊猫重采样:如何从TimeDelta生成偏移规则字符串

我知道DataFrame.resample可以接受TimeDelta,但我想知道如何以编程方式生成字符串,而无需发明自己的函数。

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

输出

'0 days 00:03:00' 

事实上,我想以获得偏移规则字符串:例如'3T'

+0

你可以给你的意思的例子吗?甚至可能链接到'.resample'? – MattR

回答

1

docs解释STR(吨)

返回字符串的形式[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