如何将以天为单位的timedelta转换成字符串?

2024-04-26 00:05:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我取了当前周开始和日期周开始之间的差异,其中日期是日期列。这种差别是以天为单位的。当我试图定义函数来将这些天转换成1周差、2周差等等。在

我得到的错误是:

Cannot compare type 'Timedelta' with type 'str'

请帮我解决这个问题。我担心的是,在定义函数时,我错了吗?下面是定义函数的代码:

def check(diff):
    for d in final_data['diff']:
        if  ((d > '0 days') and (d <= '7 days')): 
            weekdiff = 'OneWeekDiff'
        elif ((d > '8 days') and (d <= '14 days')):
            weekdiff = 'TwoWeekDiff'
        else:       
            weekdiff = 'Current Week'
    return weekdiff

要找出两列之间的差异,只需使用以下减法: 最终数据['diff']=最终数据['CurrentWeekStartDay']-最终数据['InvoiceWeekstartDay']

打印(最终数据['diff'] 0 14天 14天 2 14天


Tags: and数据函数定义type错误diff单位
1条回答
网友
1楼 · 发布于 2024-04-26 00:05:17

您需要转换^{}字符串0 days7 days…:

然后我稍微修改一下函数-remove循环和else。您可以对DataFrame的列执行^{}函数:

def check(d):
    weekdiff = 'Current Week'
    if  ((d > pd.to_timedelta('0 days')) and (d <= pd.to_timedelta('7 days'))): 
        weekdiff = 'OneWeekDiff'
    elif ((d > pd.to_timedelta('8 days')) and (d <= pd.to_timedelta('14 days'))):
        weekdiff = 'TwoWeekDiff'
    return weekdiff

print (final_data['diff'].apply(check))

样品:

^{pr2}$

相关问题 更多 >