[英]How do I remove text from strings in all the rows in a column?
问题
我想从 dataframe 中的字符串中删除一些周围的文本。
代表
我有的
df1 = pd.DataFrame({'a': [1, 1, 2, 2, 3],
'b': ["NOSE PARKER Bond 1 Spain", "Fire PA1KER Bond 10 UK",
"NOSE 2HANDS Bond 3 FRANCE", "EARS STARKER Bond 11 SOUTH AFRICA",
"NORSEPACKER Bond 01 JAPAN2002"],
'c': [13, 9, 12, 5, 5]})
df1
我想要的是
df2 = pd.DataFrame({'a': [1, 1, 2, 2, 3],
'b': ["NOSE PARKER Bond 1 Spain", "Fire PA1KER Bond 10 UK",
"NOSE 2HANDS Bond 3 FRANCE", "EARS STARKER Bond 11 SOUTH AFRICA",
"NORSEPACKER Bond 01 JAPAN2002"],
'c': [13, 9, 12, 5, 5],
'b new': ["Bond 1", "Bond 10", "Bond 3", "Bond 11", "Bond 01"]})
df2
我的尝试
df1["b new"] = df1["b"].str.replace("[^Bond\s\d]", "").str.strip()
df1
您可以使用提取方法获取所需的格式。根据下面的正则表达式,键前有一个空格,数字前有一个空格,数字可以是一个或多个。
df['b_new'] = df.b.str.extract('( Bond \d+)'
)
结果:
a b c b_new
0 1 NOSE PARKER Bond 1 Spain 13 Bond 1
1 1 Fire PA1KER Bond 10 UK 9 Bond 10
2 2 NOSE 2HANDS Bond 3 FRANCE 12 Bond 3
3 2 EARS STARKER Bond 11 SOUTH AFRICA 5 Bond 11
4 3 NORSEPACKER Bond 01 JAPAN2002 5 Bond 01
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.