You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Pandas中的Lambda转换函数改写为常规命名函数(如convert_time)?

把Lambda转换为命名函数的解决方案

没问题,我来帮你把这段Lambda表达式改成可读性更强的常规命名函数,这样后续维护或者扩展功能都会更方便。

先拆解下原来Lambda里的逻辑:对Projects列的每个字符串值,先用Duration()解析成时长对象,转成小时数的字符串后按逗号分割,把每个分割后的元素转成浮点数,最后求和得到总小时数。

下面是改写后的完整代码:

import pandas as pd
import os
import numpy as np
from durations_nlp import Duration

def convert_project_duration(project_str):
    # 解析时长字符串为Duration对象,转成小时数的字符串
    hours_str = str(Duration(project_str).to_hours())
    # 按逗号分割字符串,转成浮点数列表后求和
    total_hours = sum(map(float, hours_str.split(',')))
    return total_hours

# 应用命名函数到Projects列
df['Total Hours'] = df['Projects'].apply(convert_project_duration)

如果想要逻辑更直观,也可以把函数拆成更细的分步写法,方便后续调试或修改:

def convert_project_duration(project_str):
    # 解析输入的多段时长字符串
    duration_obj = Duration(project_str)
    # 转换为小时数的字符串格式
    hours_str = str(duration_obj.to_hours())
    # 分割成单个时长的字符串列表
    hour_parts = hours_str.split(',')
    # 逐个转换为浮点数并求和
    total_hours = sum(float(part) for part in hour_parts)
    return total_hours

这样每一步的功能都清晰明了,不管是自己后续迭代,还是团队同事看代码,都能快速get到逻辑。

内容的提问来源于stack exchange,提问作者Manoj Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 03:42:31