我需要解析包含长字符串的Pandas DataFrame列,我需要在PXXXXX的特定模式后找到ID。 id始终以'P'开头,后跟5个随机字符或数字,即PXYZAB。
例如,
columnName
|||||||||||||||||||||Fefelajfeaflekj;alfkjeaf_PXXXXX
||||XYz<,,,ffeals89fes|PXXXXX_fewalfeslfesfsfjfes
wh;lajkfeklaflkejasefj;lase|||||xxxx_PXXXX|wha;felkjasf
答案 0 :(得分:1)
查看以下内容是否适合您。
更新了数字请求
import re
s='||||XYz<,,,ffeals89fes|PUVWXY_fewalfeslfesfsfjfes\nwh;lajkfeklaflkejasefj;lase|||||xxxx_PA1CDE|wha;felkjasf'
colIdx='Col Header Name in Data Frame where the string is' #OR just the 1 if it is 2nd column that you want to check and there are no headers in your data frame.
ids=[m for idx, row in df.iterrows() for m in re.findall('P[A-Z0-9]{5}',row[colIdx])]:
<强>输出强>
PUVWXY
PA1CDE
请注意,这只会捕获P
后跟五个大写字母或数字。
答案 1 :(得分:1)
import pandas as pd
df = read_excel(c:\\......)
df.head()
输出
String
|||||fe;jlkajf;lkeja;fji_PXXXX
;ljf;oeiaf;ifs[op[[pof[PXXXX,;lkjf;lej;afle
[xyzPXXXX]
溶液
df['patterns'] = df['String'].str.findall('P[A-Za-z0-9]{5}')
输出
String patterns
|||||fe;jlkajf;lkeja;fji_PXXXX PXXXXX
;ljf;oeiaf;ifs[op[[pof[PXXXX,;lkjf;lej;afle PXXXXX
[xyzPXXXX] PXXXXX