我试图从我的数据帧中的一列中删除所有非字母数字字符,但一直无法找到解决方案,直到我遇到regex.谁能给我解释一下为什么第一行代码不起作用,而第二行代码起作用了?我查看了文档(https://pandas.pydata.org/pandas-docs/stable/user_guide/text.html#),并按照我所看到的进行操作.

以下是带有输出的第一行代码:

teams_df['Team'] = (teams_df['Team'].astype('string')
                    .str.replace('\W', '', regex=False)
                   )

以下是运行正常的代码/输出行:

teams_df['Team'] = (teams_df['Team'].astype('string')
                    .str.replace(r'\W', '', regex=True)
                   )

我更喜欢使用第一行代码,但它不起作用.

推荐答案

str.replace('\W', '', regex=False)会try 使用'\W'作为转义序列(这是无效的).即使是r'\W'regex=False,它也只会替换字符串r'TUV\WXY'中出现的\W.

因此,只有r'\W'regex=True的组合才有意义删除非字母数字字符:

str.replace(r'\W', '', regex=True)

请注意,如果您不想使用正则表达式,则可以使用str.strip和要删除的字符列表:

str.strip('*+')

Python相关问答推荐

理解Python的二分库:澄清bisect_left的使用

如何使用pandasDataFrames和scipy高度优化相关性计算

ModuleNotFound错误:没有名为flags.State的模块; flags不是包

如何在Windows上用Python提取名称中带有逗号的文件?

PMMLPipeline._ fit()需要2到3个位置参数,但给出了4个位置参数

通过pandas向每个非空单元格添加子字符串

使用setuptools pyproject.toml和自定义目录树构建PyPi包

PyQt5,如何使每个对象的 colored颜色 不同?'

如何在Python中找到线性依赖mod 2

在单个对象中解析多个Python数据帧

无论输入分辨率如何,稳定扩散管道始终输出512 * 512张图像

当条件满足时停止ODE集成?

遍历列表列表,然后创建数据帧

使用xlsxWriter在EXCEL中为数据帧的各行上色

如何在Quarto中的标题页之前创建序言页

如何获取给定列中包含特定值的行号?

某些值的数值幂和**之间的差异

利用广播使减法更有效率

在Django REST框架中定义的URL获得404分

生产者/消费者-Queue.get by list