gpt4 book ai didi

python - 数据框中的正则表达式( Pandas )

转载 作者:行者123 更新时间:2023-12-04 08:29:09 25 4
gpt4 key购买 nike

我有一个像这样的列的数据框

COL1
PACK[30% /2 prod.(if fidelity)]
PACK[3.85 € /2 prod.(if fidelity)]
PACK[40% /2nd prod.]
PACK[3.5 € /2 prod.]
我想根据 COL1 创建其他列如下
fidelity_perc fidelity_euro rem_perc  rem_eu
30 3,85 40 3,5
使用正则表达式。
对于 PACK[40% /2nd prod.]我做了 (?<=PACK\[)\d+(?=%)但它也为 PACK[30% /2 prod.(if fidelity)]步行我不想要这个。

最佳答案

获取 PACK[40% /2nd prod.] , 您可以使用

df['COL1'].str.extract(r'PACK\[(\d[\d.]*)%[^][()]*]', expand=False)
this regex demo .
获取 PACK[30% /2 prod.(if fidelity)] , 您可以使用
df['COL1'].str.extract(r'PACK\[(\d[\d.]*)%[^][]*fidelity[^][]*]', expand=False)
this regex demo
同理,如果只有 +才需要找一个值签名,只需更换 fidelity\+ :
df['COL1'].str.extract(r'PACK\[(\d[\d.]*)%[^][]*\+[^][]*]', expand=False)
详情
  • PACK\[ - 文字 PACK[字符串
  • (\d[\d.]*) - 捕获组 1:一个数字,然后是任何零个或多个数字或点,尽可能多
  • % - 一个 %签到
  • [^][]* - 除 [ 之外的任何零个或多个字符和 ]尽可能多
  • \+ - 加分
  • fidelity - 一个 fidelity子串
  • [^][]* - 除 [ 之外的任何零个或多个字符和 ]尽可能多
  • [^][()]* - 除 [ 之外的任何零个或多个字符, ] , ()尽可能多
  • ] - 一个 ]字符。
  • 关于python - 数据框中的正则表达式( Pandas ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65110295/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com