Pandas如何删除DataFrame字符串列首个空格前的内容
问题背景
现有如下结构的pandas DataFrame:
import pandas as pd df1 = pd.DataFrame({'Item_Description': ['dfd_landing BKK_AOT-Airbridge / Jetty', 'dfd_month DEL_Updater Services Pvt Ltd-Office Cleaning']})
需要实现的效果:删除Item_Description列每个字符串中第一个空格之前的所有内容,最终得到如下结果:
df1 = pd.DataFrame({'Item_Description': ['BKK_AOT-Airbridge / Jetty', 'DEL_Updater Services Pvt Ltd-Office Cleaning']})
之前尝试的代码df1['Item_Description'] = df1['Item_Description'].str.replace(".*(" ")", "")运行后会清空整段字符串,无法得到预期结果。
实现方案
正则替换方案(推荐)
直接通过正则匹配第一个空格前的所有内容替换为空,一行代码即可完成:
df1['Item_Description'] = df1['Item_Description'].str.replace(r'^.*? ', '', regex=True)
正则逻辑说明:
^锚定字符串起始位置.*?采用非贪婪匹配规则,匹配从开头到第一个空格为止的所有字符(包含这个分隔空格)- 替换匹配段为空后,剩余内容就是需要保留的部分。
字符串拆分方案
如果不想使用正则,也可以通过指定拆分次数的分割方法实现,同样一行完成:
df1['Item_Description'] = df1['Item_Description'].str.split(n=1).str[1]
逻辑说明:
- 给
split传入参数n=1,代表仅按第一个空格做一次拆分,拆分后得到包含两个元素的列表,取索引为1的元素就是需要保留的后半段内容。
内容的提问来源于stack exchange,提问作者toerag
相关产品推荐
相关产品推荐

