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

如何从dataframe两列提取指定字符拼接生成新列

多列字符提取拼接生成新变量实现方案

需求拆分如下:

  • 拆分name列的名、姓两部分,分别提取首字母
  • 提取zip列的最后两位字符
  • 将三个提取结果拼接为new.var列

以下是两种常用工具的实现代码:

R语言(tidyverse 实现)

library(tidyverse)

# 构造示例数据
df <- tibble(
  name = c("Mike Tyson", "Mohammed Ali", "Joe Frazier", "Floyd Mayweahter"),
  zip = c(13756, 54412, 47463, 34134)
)

# 生成新变量
df <- df %>%
  mutate(
    # 提取名、姓的首字母并拼接
    name_init = str_replace(name, "(^[A-Z]).*\\s([A-Z]).*", "\\1\\2"),
    # 提取zip末尾两位,数值型zip需先转字符
    zip_end = str_sub(as.character(zip), -2),
    new.var = paste0(name_init, zip_end)
  ) %>%
  # 可选:删除中间辅助列
  select(-name_init, -zip_end)

执行后即可得到符合要求的结果。

Python(pandas 实现)

import pandas as pd

# 构造示例数据
df = pd.DataFrame({
    "name": ["Mike Tyson", "Mohammed Ali", "Joe Frazier", "Floyd Mayweahter"],
    "zip": [13756, 54412, 47463, 34134]
})

# 生成新变量
df["new.var"] = (
    # 提取名的首字母
    df["name"].str.split().str[0].str[0] +
    # 提取姓的首字母
    df["name"].str.split().str[1].str[0] +
    # 提取zip末尾两位,数值型zip需先转字符
    df["zip"].astype(str).str[-2:]
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:57:01