Python数据框在特定字符之前删除子字符串

问题描述

我正在尝试删除名称列中“-”之前的数字。但并非所有行都在名称前加上数字。如何删除有数字的行中的数字,并使前面没有数字的行保持不变?

样本df:

country     Name
UK          5413-Marcus
Russia      5841-Natasha
Hong Kong   Keith
China       7777-Wang

所需的df

country     Name
UK          Marcus
Russia      Natasha
Hong Kong   Keith
China       Wang

感谢您的协助!预先感谢!

解决方法

Pandas具有用于系列的字符串访问器。如果拆分并获取结果列表的最后一个元素,即使一行没有分号“-”,您仍然希望该单元素列表的最后一个元素。

df.Name = df.Name.str.split('-').str.get(-1)
,

您可以通过以下方式将str.lstrip用于该任务:

import pandas as pd
df = pd.DataFrame({'country':['UK','Russia','Hong Kong','China'],'Name':['5413-Marcus','5841-Natasha','Keith','7777-Wang']})
df['Name'] = df['Name'].str.lstrip('-0123456789')
print(df)

输出:

     country     Name
0         UK   Marcus
1     Russia  Natasha
2  Hong Kong    Keith
3      China     Wang

.lstrip确实删除了前导字符,.rstrip后缀和.strip

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...