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

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

正則表達式代碼,如何解決某些數據輸入錯誤

正則表達式代碼,如何解決某些數據輸入錯誤

PHP
吃雞游戲 2023-11-09 15:51:43
我有兩個數據框df1nameADAM, HAFIZ MABAD, FARLEY JCORDDED, NANCY CBOMBSHAD, WANG Ddf2JOSEPH W. HOLUBKA   WANG E. JONATHANCUCU F. LIU,WANG C. DANA,LANDY F. JON我希望提取每個數據幀的名字。對于 df1,我需要“,”之后的“名字”部分,第二個 df,名字就是我想要的。所以返回的 df 是df1HAFIZFARLEYNANCYWANGdf2JOSEPHWANGCUCUWANGLANDY我當前的代碼是  df['name'].str.upper().apply(lambda name:re.search(r'\w+(?!.*,)',name).group())這個正則表達式適用于兩個 df,但是,我剛剛意識到我的數據有一個輸入錯誤。在 df2 中,Liu 和 Dana 末尾有一個“,”,這導致正則表達式不起作用。錯誤是 group() 不是屬性。無論如何我可以修復這個代碼嗎?正則表達式應該適用于 df
查看完整描述

2 回答

?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

您可以使用

(^(?=[^,]*,?$)[\w'-]+|(?<=, )[\w'-]+)

請參閱正則表達式演示。如果字符串中存在尾隨逗號,則此模式允許在字符串中的初始位置匹配名稱。

在 Pandas 中使用向Series.str.extract量化方法:

df['first name'] = df['name'].str.upper().str.extract(r"(^(?=[^,]*,?$)[\w'-]+|(?<=, )[\w'-]+)", expand=False)

正則表達式詳細信息

  • ^(?=[^,]*,?$)[\w'-]+'- 一個或多個單詞,如果字符串沒有逗號但可以以可選逗號 ( ) 結尾,則在字符串 ( ) 開頭添加-字符[\w'-]+( )^(?=[^,]*,?$)

  • |- 或者

  • (?<=, )[\w'-]+- 一個或多個單詞,'以及-字符 字符前面帶有逗號 + 空格。


查看完整回答
反對 回復 2023-11-09
?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

再試一次,因為我的第一個不在那里。您只需要更改一件事。當它們的前瞻匹配任何逗號時,我們只想匹配后面跟著另一個單詞的逗號。導致:

(?:(?<=^(?!.*,?*\w))|(?<=,?))([A-Z]+)



查看完整回答
反對 回復 2023-11-09
  • 2 回答
  • 0 關注
  • 174 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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