根据定界符(熊猫)拆分列值

时间:2020-07-10 19:56:00

标签: python pandas

我有一个列名称为AA_ID的熊猫数据框。列名称值在几行中都有一个特殊字符“-#”。我需要确定三件事:

  1. 这些特殊字符或分隔符的位置
  2. 在特殊字符之前找到字符串
  3. 在特殊字符后找到字符串

例如AFB001 9183Daily-#789876A

答案将在定界符-AFB001 9183Daily之前和定界符-789876A

之后

2 个答案:

答案 0 :(得分:1)

只需将apply功能与split-

df['AA_IDs'].apply(lambda x: x.split('-#'))

这应该给您一个系列,每行的列表为[AFB001 9183Daily, 789876A]

这将比使用正则表达式快得多,更不用说可读性了。

答案 1 :(得分:0)

因此,可以说数据帧称为df,而带有文本的列为A。 您可以使用

import re # Import regex

pattern = r'<your regex>'

df['one'] = df.A.str.extract(pattern)

这将创建一个包含所提取文本的新列。您只需要创建一个正则表达式即可从字符串中提取所需内容。我强烈建议regex101帮助您构建正则表达式。

希望这会有所帮助!