gpt4 book ai didi

python - 使用正则表达式改变数字 Pandas

转载 作者:太空宇宙 更新时间:2023-11-04 11:13:42 26 4
gpt4 key购买 nike

背景

我有以下 df

import pandas as pd
df = pd.DataFrame({'Text' : ['But the here is \nBase ID: 666666 \nDate is Here 123456 ',
'999998 For \nBase ID: 123456 \nDate there',
'So so \nBase ID: 939393 \nDate hey the 123455 ',],
'ID': [1,2,3],
'P_ID': ['A','B','C'],

})

输出

    ID  P_ID    Text
0 1 A But the here is \nBase ID: 666666 \nDate is Here 123456
1 2 B 999998 For \nBase ID: 123456 \nDate there
2 3 C So so \nBase ID: 939393 \nDate hey the 123455

尝试过

我尝试了以下方法来**BLOCK** \nBase ID:\nDate 之间的 6 位数字

>
df['New_Text'] = df['Text'].str.replace('ID:(.+?)','ID:**BLOCK**')

我得到以下内容

  ID P_ID Text New_Text
0 But the here is \nBase ID:**BLOCK**666666 \nDate is Here 123456
1 999998 For \nBase ID:**BLOCK**123456 \nDate there
2 So so \nBase ID:**BLOCK**939393 \nDate hey the 123455

但我并没有完全得到我想要的

期望的输出

  ID P_ID Text New_Text
0 But the here is \nBase ID:**BLOCK** \nDate is Here 123456
1 999998 For \nBase ID:**BLOCK** \nDate there
2 So so \nBase ID:**BLOCK** \nDate hey the 123455

问题

如何调整代码的 str.replace('ID:(.+?)','ID:**BLOCK**') 部分以获得我想要的输出?

最佳答案

df['New_Text'] = df['Text'].str.replace(r'ID: *\d+ *', 'ID:**BLOCK** ')

参见 here详分割解使用的正则表达式模式。

关于python - 使用正则表达式改变数字 Pandas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57548663/

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