簡體   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