删除熊猫数据框中“标签”列中出现数字后的空格
Posted
技术标签:
【中文标题】删除熊猫数据框中“标签”列中出现数字后的空格【英文标题】:Remove space after number occurrence in 'label' column in pandas dataframe 【发布时间】:2021-01-31 01:23:53 【问题描述】:我有一个带有“标签”列的数据框,它的标点符号和间距值很差。使用字符串替换清除标点符号后,现在需要删除数字出现后的空格。
下面是带有样本值的df:
label = 'label':['L1 RE','L1 REL3 RE', 'Quality','L1 RE L3 Algo', 'PM, L4 HW,L1 SW'],
'name':['mon','tue','wed','thur','fri']
df = pd.DataFrame(label)
我尝试了正则表达式:number = re.search(r'\d+', df['label']).group()
但得到错误:TypeError: expected string or bytes-like object
【问题讨论】:
那么,您要删除Label
中的所有空格吗? df['label'].str.replace(' ','')
? df['label'].str.replace(r'(\d)\s+',r'\1')
?
我想在数字出现后删除空格并从上面替换帮助。谢谢
【参考方案1】:
你可以使用
df['label'] = df['label'].str.replace(r'(\d)\s+',r'\1')
请参阅regex demo。
在这种情况下,一个数字与(\d)
匹配并捕获,并且一个或多个空格字符仅匹配,并且由于替换是对第 1 组值的反向引用,因此空格是由于Series.str.replace
而被删除。
完整的 Pandas 测试:
import pandas as pd
label = 'label':['L1 RE','L1 REL3 RE', 'Quality','L1 RE L3 Algo', 'PM, L4 HW,L1 SW'], 'name':['mon','tue','wed','thur','fri']
df = pd.DataFrame(label)
df['label'] = df['label'].str.replace(r'(\d)\s+',r'\1')
>>> df
label name
0 L1RE mon
1 L1REL3RE tue
2 Quality wed
3 L1RE L3Algo thur
4 PM, L4HW,L1SW fri
【讨论】:
以上是关于删除熊猫数据框中“标签”列中出现数字后的空格的主要内容,如果未能解决你的问题,请参考以下文章
如何从包含特定列中特定字符串的熊猫数据框中删除行? [复制]