【问题标题】:How to extract certain values from a string based on prefix in Python/pandas? [duplicate]如何根据 Python/pandas 中的前缀从字符串中提取某些值? [复制]
【发布时间】:2020-08-02 18:16:54
【问题描述】:

我在 pandas 数据框中有一列,其中每个值都是一个长文本字符串。在该文本的某处,我可能有也可能没有带有特定前缀(“IFL”或“IFN”)的对象编号,我需要将其提取并添加为自己的列。

数据如下:

Description
12753, IFL12329-1, Supply Chain, (May)
120873, [send], 7385876, (June), IFN1228-3

预期结果:

Description                                     Object Number
12753, IFL12329-1, Supply Chain, (May)          IFL12329-1
120873, [send], 7385876, (June), IFN1228-3      IFN1228-3

前缀必须包含在新列中,困难在于它是两个不同的前缀条件,并且它们每次都位于不同的位置(有时在字符串中间,有时在末尾)。

【问题讨论】:

标签: python pandas


【解决方案1】:

使用带有str.extract的正则表达式

df['object']= df['Description'].str.extract('((IFN|IFL)\d+-\d)')[0]

print(df)


                                  Description      object
0      12753, IFL12329-1, Supply Chain, (May)  IFL12329-1
1  120873, [send], 7385876, (June), IFN1228-3   IFN1228-3

【讨论】:

  • 也可以是(IF\w\d+-\d+)
  • 这很有效,非常感谢!
猜你喜欢
  • 1970-01-01
  • 2022-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-07
  • 2017-04-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多