亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何提取框架內的特定關鍵字并僅提取分隔符中的數據

如何提取框架內的特定關鍵字并僅提取分隔符中的數據

牛魔王的故事 2022-12-27 14:50:53
我有一列數據如下:abc|frame|gtk|enst.24|pc|hg|,abc|framex|gtk4|enst.35|pxc|h5g|,abc|frbx|hgk4|enst.23|pix|hokg|abc|frame|gtk|enst.15|pc|hg|,abc|framex|gtk2|enst.59|pxc|h5g|,abc|frbx|hgk4|enst.18|pif|homg|abc|frame|gtk|enst.98|pc|hg|,abc|framex|gtk1|enst.45|pxc|h5g|,abc|frbx|hgk4|enst.74|pig|hofg|abc|frame|gtk|enst.34|pc|hg|,abc|framex|gtk1|enst.67|pxc|h5g|,abc|frbx|hgk4|enst.39|pik|hoqg|我想在框架內搜索和提取特定關鍵字,并僅提取分隔符中的數據具體關鍵字是enst.35enst.18enst.98enst.63預期的輸出是abc|framex|gtk4|enst.35|pxc|h5g|abc|frbx|hgk4|enst.18|pif|homg|abc|frame|gtk|enst.98|pc|hg|NA我在這里試過但沒有有效地工作
查看完整描述

3 回答

?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

您可以使用給定的構建正則表達式模式,keywords然后使用它Series.str.findall來查找所有出現的正則表達式系列:

import re


keywords = ['enst.35','enst.18','enst.98','enst.63']

pattern = '|'.join([rf'[^,]+{re.escape(k)}[^,]+'for k in keywords])

result = df['col'].str.findall(pattern).str.get(0)

#print(result)


0    abc|framex|gtk4|enst.35|pxc|h5g|

1     abc|frbx|hgk4|enst.18|pif|homg|

2        abc|frame|gtk|enst.98|pc|hg|

3                                 NaN

Name: col, dtype: object

您可以測試正則表達式模式here


查看完整回答
反對 回復 2022-12-27
?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

你可以在 bashscript 中嘗試如下:


for STRING in enst.35 enst.18 enst.98 enst.63; do

  tr \, \\n < file.txt | grep "$STRING" || echo NA

done


查看完整回答
反對 回復 2022-12-27
?
MM們

TA貢獻1886條經驗 獲得超2個贊

str.extractandstr.split(',)取最后一個逗號分隔值:

df['Data2'] = df['Data'].str.extract('(^.*enst.35\|.+?\|.+?\||^.*enst.18\|.+?\|.+?\||^.*enst.98\|.+?\|.+?\||^.*enst.63\|.+?\|.+?\||)', expand=False).str.split(',').str[-1]

您可以創建一個關鍵字列表,并根據另一個答案進行列表理解。


查看完整回答
反對 回復 2022-12-27
  • 3 回答
  • 0 關注
  • 109 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號