我有一个pandas dataframe列,其字符串如下所示:
Column A
text moretext 251 St. Louis Apt.54
123 Orange Drive
sometext somemoretext 171 Poplar street
textnew 11th street
77 yorkshire avenue
我想在数值之前删除文本,即我希望输出是这样的:
Column A
251 St. Louis Apt.54
123 Orange Drive
171 Poplar street
11th street
77 yorkshire avenue
答案 0 :(得分:4)
让我们使用正则表达式和extract
:
df['Column A'] = df['Column A'].str.extract(r'(\d+.+$)')
输出:
0 251 St. Louis Apt.54
1 123 Orange Drive
2 171 Poplar street
3 11th street
4 77 yorkshire avenue
Name: Column A, dtype: object
正则表达式状态使得一组字符以任意长度的数字开头,并一直持续到该行的结尾。
答案 1 :(得分:2)
此函数正在查找字符串中第一个数字字符的索引并选择字符串的剩余部分。然后使用应用函数
将此函数应用于列的每个值def change(string):
for i, c in enumerate(string):
if c.isdigit():
idx = i
break
return string[idx:]
data[A] = data[A].apply(change, axis = 0)