Regex 在Python中删除中文字符串列中的空格和标点符号
为了通过Regex 在Python中删除中文字符串列中的空格和标点符号,regex,python-3.x,pandas,dataframe,Regex,Python 3.x,Pandas,Dataframe,为了通过news列删除以下数据帧中的重复项,我尝试从该列中删除所有空格和标点 date news 0 2017-08 北京写字楼租金哪家高? 金融街、CBD、亚奥居TOP3 1 2017-08 租金一直涨,到底是谁租走了北京最贵的写字楼(附名单) 2 2017-09 北京三季度写字楼租金继续保持平稳 3 2017-09 戴德梁行:第三季度北京写字楼
news
列删除以下数据帧中的重复项,我尝试从该列中删除所有空格
和标点
date news
0 2017-08 北京写字楼租金哪家高? 金融街、CBD、亚奥居TOP3
1 2017-08 租金一直涨,到底是谁租走了北京最贵的写字楼(附名单)
2 2017-09 北京三季度写字楼租金继续保持平稳
3 2017-09 戴德梁行:第三季度北京写字楼市场租金保持平稳
4 2018-01 北京豪华公寓销量大涨76.5% 金融街写字楼租金创35季度新高
5 2010-11 楼市下行,高租金的商住和写字楼能不能投?
我尝试了以下解决方案:
df.news = df.news.apply(lambda x: re.sub(r'[^\w\s]', '', x)).replace(' ', '')
df.news = df.news.str.replace('[^\w\s]', '').str.strip()
两者都生成一个输出,字符串中有空格:
0 北京写字楼租金哪家高 金融街CBD亚奥居TOP3 ---> space in the phrase
1 租金一直涨到底是谁租走了北京最贵的写字楼附名单
2 北京三季度写字楼租金继续保持平稳
3 戴德梁行第三季度北京写字楼市场租金保持平稳
4 北京豪华公寓销量大涨765 金融街写字楼租金创35季度新高 ---> space in the phrase
5 楼市下行高租金的商住和写字楼能不能投
下面的代码删除新闻短语的第二部分
df.news = df.news.str.extract('(\w+)', expand = False)
0 北京写字楼租金哪家高
1 租金一直涨
2 北京三季度写字楼租金继续保持平稳
3 戴德梁行
4 北京豪华公寓销量大涨76
5 楼市下行
如何获得新闻
专栏的预期结果?多谢各位
0 北京写字楼租金哪家高金融街CBD亚奥居TOP3
1 租金一直涨到底是谁租走了北京最贵的写字楼附名单
2 北京三季度写字楼租金继续保持平稳
3 戴德梁行第三季度北京写字楼市场租金保持平稳
4 北京豪华公寓销量大涨765金融街写字楼租金创35季度新高
5 楼市下行高租金的商住和写字楼能不能投
这似乎有效:
df.news.apply(lambda x: re.sub(r'[^\w\s]', '', x)).str.replace(' ', '')
输出:
0 北京写字楼租金哪家高金融街CBD亚奥居TOP3
1 租金一直涨到底是谁租走了北京最贵的写字楼附名单
2 北京三季度写字楼租金继续保持平稳
3 戴德梁行第三季度北京写字楼市场租金保持平稳
4 北京豪华公寓销量大涨765金融街写字楼租金创35季度新高
5 楼市下行高租金的商住和写字楼能不能投
看起来您需要
df['news']=df['news'].str.replace(r'[\W+','')
[^\W\s]
无法匹配空白字符,因为它是一个否定字符类,匹配的字符只有单词(字母、数字、.
+某些变音符号等)和空白字符。如果您删除\s
,它将等于\W
不匹配的\u
,因此[\W\u]
只需保留所有字母数字字符即可。谢谢,但是如何删除空格
?我不明白。\W
匹配空格,因为它们是非单词字符。所有内容都在