我有一个带有列名的熊猫数据框 - AA_IDs。列名值在几行中有一个特殊字符“-#”。我需要确定三件事:
- 这些特殊字符或分隔符的位置
- 查找特殊字符之前的字符串
- 查找特殊字符后面的字符串
例如 AFB001 9183Daily-#789876A
答案将在分隔符之前 -AFB001 9183Daily和分隔符之后 -789876A
只需将 apply 函数与 split 一起使用 -
df['AA_IDs'].apply(lambda x: x.split('-#'))
这应该给你一个系列,每行都有一个列表[AFB001 9183Daily, 789876A]
这将比使用正则表达式快得多,更不用说可读性了。
因此,可以说数据框被调用df并且带有文本的列是A. 您可以使用
import re # Import regex
pattern = r'<your regex>'
df['one'] = df.A.str.extract(pattern)
这将创建一个包含提取文本的新列。您只需要创建一个正则表达式即可从字符串中提取您想要的内容。我强烈推荐regex101来帮助你构建你的正则表达式。
希望这可以帮助!