【问题标题】:How to remove strings before a numeric value in a pandas dataframe column?如何删除熊猫数据框列中数值之前的字符串?
【发布时间】:2018-09-20 13:42:09
【问题描述】:

我有一个带有如下字符串的 pandas 数据框列:

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

【问题讨论】:

    标签: python string pandas


    【解决方案1】:

    此函数查找字符串中第一个数字字符的索引并选择字符串的剩余部分。然后使用 apply 函数将此函数应用于列的每个值

    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)
    

    【讨论】:

    • 如果您想让答案有用,我建议您在答案中添加一些解释。
    【解决方案2】:

    让我们使用正则表达式和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
    

    正则表达式状态获取一组字符,以任意长度的数字开头,一直持续到行尾。

    【讨论】:

      猜你喜欢
      • 2016-01-29
      • 1970-01-01
      • 1970-01-01
      • 2018-03-23
      • 2021-08-12
      • 2019-03-14
      • 1970-01-01
      • 2017-06-02
      • 1970-01-01
      相关资源
      最近更新 更多