【问题标题】:How to delete the rows with pattern [duplicate]如何删除带有模式的行[重复]
【发布时间】:2017-07-04 16:01:14
【问题描述】:

我有一个如下的 DataFrame。我想删除 RegionName 包含 [edit] 的行。感谢您的帮助。

    State   RegionName1
0   Alabama Alabama[edit]
1   Alabama Auburn
2   Alabama Florence
3   Alabama Jacksonville
4   Alabama Livingston
9   Alaska  Alaska[edit]
10  Alaska  Fairbanks
11  Arizona Arizona[edit]
12  Arizona Flagstaff
13  Arizona Tempe
15  Arkansas    Arkansas[edit]
16  Arkansas    Arkadelphia
18  Arkansas    Fayetteville

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    你不需要删除,你只需要选择其中没有“编辑”的那些:

    df = df[~df.RegionName1.str.contains('edit')
    

    【讨论】:

      【解决方案2】:

      我会选择pandas.Series.str.contains 来获得合适的过滤器。

      df = df[~df.RegionName1.str.contains('[edit]')]
      

      演示

      >>> df
           RegionName1     State
      0  Alabama[edit]   Alabama
      1        Alabama   Alabama
      2   Alaska[edit]    Alaska
      3       Arkansas  Arkansas
      
      >>> df = df[~df.RegionName1.str.contains('[edit]')]
      
      >>> df
        RegionName1     State
      1     Alabama   Alabama
      3    Arkansas  Arkansas
      

      【讨论】:

        【解决方案3】:

        你可以使用.str.endswith()方法:

        In [165]: df = df.loc[~df.RegionName1.str.endswith('[edit]')]
        
        In [166]: df
        Out[166]:
               State   RegionName1
        1    Alabama        Auburn
        2    Alabama      Florence
        3    Alabama  Jacksonville
        4    Alabama    Livingston
        6     Alaska     Fairbanks
        8    Arizona     Flagstaff
        9    Arizona         Tempe
        11  Arkansas   Arkadelphia
        12  Arkansas  Fayetteville
        

        【讨论】:

          猜你喜欢
          • 2021-04-16
          • 1970-01-01
          • 2015-10-20
          • 2018-04-15
          • 2021-10-15
          • 1970-01-01
          • 1970-01-01
          • 2016-10-07
          相关资源
          最近更新 更多