,可以通过以下步骤实现:
import pandas as pd
import re
data = {'文本列': ['A-123', 'B-456', 'C-789']}
df = pd.DataFrame(data)
def split_text(row):
pattern = r'([A-Z])-([0-9]+)'
match = re.match(pattern, row['文本列'])
if match:
return match.group(1), match.group(2)
else:
return None, None
df[['字母列', '数字列']] = df.apply(lambda row: pd.Series(split_text(row)), axis=1)
print(df)
输出结果:
文本列 字母列 数字列
0 A-123 A 123
1 B-456 B 456
2 C-789 C 789
在这个例子中,我们使用正则表达式模式([A-Z])-([0-9]+)
来匹配文本列中的字母和数字部分。然后,通过lambda函数将匹配结果拆分为两列,并将结果存储在新的字母列和数字列中。
这种方法适用于需要根据特定模式拆分文本列的情况,例如将"A-123"拆分为字母"A"和数字"123"。使用正则表达式和lambda函数可以灵活地处理各种拆分需求。
推荐的腾讯云相关产品:腾讯云云服务器(https://cloud.tencent.com/product/cvm)和腾讯云云数据库MySQL版(https://cloud.tencent.com/product/cdb_mysql)可以提供稳定的计算和存储资源,用于支持数据处理和存储需求。
领取专属 10元无门槛券
手把手带您无忧上云