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

如何将released列拆分处理的已有代码改写为pandas lambda函数

实现方案

可以改写为lambda函数,结合pandas的apply方法即可实现,具体写法如下:


方案1:lambda+apply直接匹配原逻辑

# 逐行拆分released字段,生成日期原始值和国家两个字段
movies[['released_date_raw', 'released_country']] = movies['released'].apply(
    lambda x: pd.Series([x.split("(")[0], x.split("(")[1].replace(')', '')])
)

# 后续日期转换、提取年月逻辑和原代码保持一致
movies['released_date'] = pd.to_datetime(movies['released_date_raw'])
movies['released_year'] = movies['released_date'].dt.year
movies['released_month'] = movies['released_date'].dt.month

# 可选:删除临时生成的原始日期字段
movies.drop('released_date_raw', axis=1, inplace=True)

方案2:更高效的向量化处理(推荐大数据量使用)

如果数据集规模较大,更推荐用pandas原生字符串方法实现,性能比lambda+apply更高,不需要显式写lambda:

# 用原生str方法拆分字符串,避免逐行遍历
split_res = movies['released'].str.split('(', n=1, expand=True)
movies['released_date'] = pd.to_datetime(split_res[0].str.strip())
movies['released_country'] = split_res[1].str.rstrip(')').str.strip()

# 提取年月
movies['released_year'] = movies['released_date'].dt.year
movies['released_month'] = movies['released_date'].dt.month

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:45:04