如何删除带有模式的行

时间:2017-02-15 19:50:37

标签: python pandas

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

3 个答案:

答案 0 :(得分:1)

您可以使用.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

答案 1 :(得分:0)

您无需删除,只需选择其中没有“编辑”的内容:

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

答案 2 :(得分:0)

我会选择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