如何在pandas数据帧中格式化文本

2024-05-18 19:23:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个熊猫数据帧:

df

id  Description
1   2694 A&W #5530 MONTREAL QC
2   ahi DOLLARAMA # 45 MONTREAL QC
3   PC - PAYMENT FROM - *****11*22

我想格式化这个数据帧,这样df["Description"]列不会有#-*或{}如:

^{pr2}$

我尝试使用python模块re。但我错了。在

谢谢


Tags: 模块数据fromreiddfdescriptionpayment
2条回答

您可以使用pandas .applyre.sub删除{},即:

import pandas as pd
import re
test = ['2694 A&W #5530 MONTREAL QC', 'ahi DOLLARAMA # 45 MONTREAL QC', 'PC - PAYMENT FROM - *****11*22']

def change_me(content):
    content =  re.sub(r"[^A-Z ]+", "", content, 0, re.IGNORECASE)
    return re.sub(r"[ ]{2,}", " ", content, 0, re.IGNORECASE)

df = pd.DataFrame({'Desc':test})
df.Desc = df.Desc.apply(change_me)

^{pr2}$

Regex Demo and Explanation


附言:
请阅读@ami的评论,.str.replace()是适合此类任务的函数。在

尝试使用如下正则表达式:

df.Description = df.Description.str.replace(r'[\d#\-\*]', '')

这给了

^{pr2}$

相关问题 更多 >

    热门问题