【问题标题】:Check if there is any 10 character word available in the string If Exist Extract the word检查字符串中是否有任何 10 个字符的单词可用如果存在提取单词
【发布时间】:2022-12-06 22:01:33
【问题描述】:

我一直在寻找从字符串中提取一个 10 个字符的单词(如果它存在的话)。

需要检查前 5 个字符是否来自给定列表,后 3 个字符是否为数字。

输入数据(Data.xlsx):

Description                                                  Number

CHQ -AQBCN2Q546 from India Federation Pvt Ltd               
CHQN#DJBNK0Q329 from Indiana Basics Software Ltd -BC003
CASH-NJRQC5J987 from US Fertilizers LLP
CHQ - from India Bulls Pvt Ltd
CHQ -AQBCN2Q989 from India Bulls Pvt Ltd
CHQ -AQBCN2Q546 from India Federation Pvt Ltd

list_Character - ['AQBCN','PUCNQ','DJBNK','ADJBC','NJRQC']

预期输出:

Description                                                          Number
    
CHQ -AQBCN2Q546 from India Federation Pvt Ltd                    AQBCN2Q546           
CHQN#DJBNK0Q329 from Indiana Basics Software Ltd -BC003          DJBNK0Q329
CASH-NJRQC5J987 from US Fertilizers LLP                          NJRQC5J987
CHQ - from India Bulls Pvt Ltd
CHQ -AQBCN2Q989 from India Bulls Pvt Ltd                         AQBCN2Q989
CHQ -AQCCN2Q546 from India Federation Pvt Ltd



Code:
import pandas as pd
import re

df = pd.read_excel(r'D:/Users/Data.xlsx')
list_Character - ['AQBCN','PUCNQ','DJBNK','ADJBC','NJRQC']
for i in df['Description']:
    list = re.findall("[ae]\w+", i)

我没有找到解决方案的方法,请建议。

【问题讨论】:

  • 您不能只在 for 循环中拆分在 i 中获得的字符串,然后检查结果列表的最后一个元素中的数字和第一个元素中的字符吗?

标签: python pandas


【解决方案1】:

我想你想要:

list_Character = ['AQBCN', 'PUCNQ', 'DJBNK', 'ADJBC', 'NJRQC']
regex = r'[#-]((?:' + r'|'.join(list_Character) + r')w{5})'
df["Number"] = df["Description"].str.extract(regex)

【讨论】:

  • 感谢您的回答,但需要检查变量 [ list_String ] 和“-”中的前 5 个字符是否不仅是我们可以用来分隔值的分隔符,它可以是任何东西,只需要找到第 10 个字符变量以及它的前 5 个字符是否在给定列表中可用。
  • 检查编辑后的答案。
猜你喜欢
  • 1970-01-01
  • 2017-02-28
  • 2016-05-23
  • 2011-07-16
  • 2014-08-09
  • 1970-01-01
  • 2016-02-24
  • 2012-05-20
  • 2015-08-07
相关资源
最近更新 更多