繁体   English   中英

熊猫重采样:如何从TimeDelta生成偏移量规则字符串

[英]Pandas resampling: how to generate offset rules string from TimeDelta

有一种方法来产生所接受的偏移规则字符串DataFrame.resample (例如“T”,“3W”,“2D”, )从一个或TimeDelta表示时间频率的另一对象开始?

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

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

产量

'0 days 00:03:00'

实际上,我想获取一个偏移规则字符串:例如“ 3T”

文档解释说str(t)

返回格式为[D day [s],] [H] H:MM:SS [.UUUUUU]的字符串,其中D表示负t。

您想知道timedelta提供对“ 3W”之类的输出的支持,而无需用户功能(平凡地)将其数字输出格式化为这种格式。 不,它不提供这种支持。

当您编写这样的函数时,您可能会发现to_perioddelta()很有帮助。

如果有人需要像我一样编写自己的函数,则代码如下:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM