【发布时间】:2021-04-29 22:43:16
【问题描述】:
我有一个熊猫系列,其中包含多行共享名称以及其他详细信息:
Netflix DIVIDEND
Apple Inc (All Sessions) COMM
Intel Corporation CONS
Correction Netflix Section 31 Fee
我正在尝试使用正则表达式来检索股票名称,我对此进行了展望:
transactions_df["Share Name"] = transactions_df["MarketName"].str.extract(r"(^.*?(?=DIVIDEND|\(All|CONS|COMM|Section))")
我唯一遇到的问题是行Correction Netflix Section 31 Fee,我的正则表达式将共享名设为Correction Netflix。我不想要“更正”这个词。
我需要我的正则表达式来检查字符串的开头或单词“Correction”。
我尝试了一些东西,例如以字符串字符 ^ 开头的 OR |。我还尝试向后看以检查 ^ 或 Correction 但错误说它们需要是恒定的长度。
r"((^|Correction ).*?(?=DIVIDEND|\(All|CONS|COMM|Section))"
给出一个错误; ValueError: Wrong number of items passed 2, placement implies 1。我是正则表达式的新手,所以我真的不知道这是什么意思。
【问题讨论】: