在具有字符串和日期时间格式观察的列上使用.Apply()

ndh0cuux  于 2022-09-21  发布在  其他
关注(0)|答案(1)|浏览(142)

我有一个df[‘elapsed_time’]列,它是‘NULL’和时差的组合:

df[‘已用时间’]

‘空’

0天00:05:08

0天01:10:50

‘空’

我想为任何超过5分钟的时间差创建一个基于该列的分类变量。我设置了一个条件函数来根据观察进行过滤,但我想我可能需要为包含“NULL”的观察分隔 Dataframe ,但这种情况下.Apply()应该可以工作。我做错了什么?


# Define the necessary data conditions in function

def condition(x):
    if x == "null":
        return "N/A"
    elif x < threshold:
        return "Momentary"
    else:
        return "Sustained"

# Applying the conditions

df['Duration_Type'] = df['Elapsed_time'].apply(condition)

尝试这样做时,我得到了错误:

elif x < time_thres:

TypeError: '<' not supported between instances of 'str' and 'datetime.timedelta'
xzlaal3s

xzlaal3s1#

解决了我的问题。观察结果是“N/A”,而不是“空”。在其他方面,这种逻辑是正确的。以下是工作代码:

def condition(x):
    if x == "N/A":
        return "N/A"
    elif x != "N/A":
        if x < time_thres:
            return "Momentary"
        else:
            return "Sustained"

相关问题