Python数据帧删除特定字符if ture之前的子字符串



我正在尝试删除&quot-"在名称列中。但并非所有行的名称前都有数字。如何删除有数字的行中的数字,并保持前面没有数字的行不变?

样品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为系列提供字符串访问器。如果拆分并获得结果列表的最后一个元素,即使一行没有delimeter"-",您仍然需要该元素列表的最后元素。

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

最新更新