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

Python 熊猫重采样:如何从TimeDelta生成偏移规则字符串,python,pandas,Python,Pandas,是否有方法从表示时间频率的时间增量或其他对象开始生成(例如“T”、“3W”、“2D”)接受的偏移规则字符串 我知道DataFrame.resample可以接受TimeDelta,但我想知道如何以编程方式生成字符串,而不必发明自己的函数 td = pd.TimeDelta('3min') str(td) 输出 '0 days 00:03:00' 实际上,我想获得一个偏移量规则字符串:例如“3T”解释str(t) 返回格式为[D day[s],[H]H:MM:SS[.uuuuu]的字符串,其中D

是否有方法从表示时间频率的时间增量或其他对象开始生成(例如“T”、“3W”、“2D”)接受的偏移规则字符串

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

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

'0 days 00:03:00'
实际上,我想获得一个偏移量规则字符串:例如“3T”

解释str(t)

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

您想知道
timedelta
是否支持像“3W”这样的输出,而不需要用户函数(通常)将其数字输出格式化为这种格式。不,它不提供这种支持

编写这样一个函数时,您可能会发现它很有用。

解释str(t)

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

您想知道
timedelta
是否支持像“3W”这样的输出,而不需要用户函数(通常)将其数字输出格式化为这种格式。不,它不提供这种支持


当您编写这样的函数时,您可能会觉得很有帮助。

如果其他人需要像我这样编写自己的函数,下面是代码:

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

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

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

你能举例说明你的意思吗?甚至可以链接到
。重新采样
?你能举例说明你的意思吗?甚至可以链接到
。重新采样