我已经看了几个小时,这应该很简单。我试图用一个混合或数字和字母从字符串中提取所有字母。这是一个例子:
df = pd.Series(['ENGLANDSR11SW'])
df = df.to_frame('column')
df['ValueAfterExtract'] = df['column'].str.extract("(?P<letter>[a-zA-Z]+)")
print(df)
从数据框中的字符串值ENGLANDSR11SW
开始,结果是ENGLANDSR
,但我想带来字符串的最后一个字母SW
,这应该导致ENGLANDSRSW
1}},意味着只删除数字11
。
我该怎么做?
答案 0 :(得分:3)
用空字符串替换所有数字(\d
):
In [6]: df['column'].str.replace(r'\d', '')
Out[10]:
0 ENGLANDSRSW
Name: column, dtype: object
或者,要删除[a-zA-Z]
以外的所有内容,请使用正则表达式[^a-zA-Z]
。例如,这将删除空格和标点符号以及数字:
In [20]: df['column'].str.replace(r'[^a-zA-Z]', '')
Out[20]:
0 ENGLANDSRSW
Name: column, dtype: object