如何在pandas dataframe列中的数值之前删除字符串?

时间:2018-04-10 20:04:14

标签: python string pandas

我有一个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

2 个答案:

答案 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)