首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在熊猫数据框架中格式化文本

如何在熊猫数据框架中格式化文本
EN

Stack Overflow用户
提问于 2018-05-13 19:21:18
回答 2查看 1.9K关注 0票数 1

我有一只熊猫的数据

代码语言:javascript
复制
df

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

我想格式化这个数据格式,这样df["Description"]列就不会有#-*numbers,比如:

代码语言:javascript
复制
id  Description

1   A&W MONTREAL QC
2   ahi DOLLARAMA MONTREAL QC
3   PC PAYMENT FROM

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

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-13 19:27:43

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

代码语言:javascript
复制
df.Description = df.Description.str.replace(r'[\d#\-\*]', '')

这给了我们

代码语言:javascript
复制
0               A&W  MONTREAL QC
1    ahi DOLLARAMA   MONTREAL QC
2             PC  PAYMENT FROM  
Name: foo, dtype: object
票数 3
EN

Stack Overflow用户

发布于 2018-05-13 19:37:56

您可以使用熊猫.applyre.sub删除[^A-Z ]+,即:

代码语言:javascript
复制
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)
代码语言:javascript
复制
                        Desc
0             AW MONTREAL QC
1  ahi DOLLARAMA MONTREAL QC
2            PC PAYMENT FROM

Regex演示和解释

PS:

请阅读@ami的评论,.str.replace()是适合这类任务的函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50319824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档