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

使用PySpark处理DataFrame字符:移除括号并替换为连字符

移除DataFrame中的括号并替换为连字符的解决方案

嘿,我来帮你搞定这个DataFrame的字符串处理需求!你的dob_concat列里是类似[1983][6][3]的格式,要转换成1983-6-3,这里有两种简单高效的方法:

方法一:分步字符串替换(适合固定格式)

这种方法直接针对你的数据格式,操作简洁:

  • 第一步把两个括号衔接的][替换成连字符-
  • 第二步去掉字符串首尾的方括号[]

代码示例:

import pandas as pd

# 假设你的DataFrame名为df
df['dob_concat'] = df['dob_concat'].str.replace('][', '-').str.strip('[]')

方法二:正则表达式替换(更灵活)

如果你的数据格式可能有变化,正则表达式能覆盖更多场景:

  • 用正则匹配每个带数字的方括号组,提取里面的数字并加上连字符
  • 最后去掉末尾多余的连字符

代码示例:

import pandas as pd
import re

df['dob_concat'] = df['dob_concat'].apply(lambda x: re.sub(r'\[(\d+)\]', r'\1-', x).rstrip('-'))

验证示例

我们用你的测试数据来跑一遍:

# 构造测试数据
data = {'dob_concat': ['[1983][6][3]']}
df = pd.DataFrame(data)

# 用方法一处理
df['dob_concat'] = df['dob_concat'].str.replace('][', '-').str.strip('[]')

print(df)

输出结果:

dob_concat
0    1983-6-3

完全符合你想要的处理效果!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:52:17