按字符串格式删除Pandas Dataframe中的某些行

时间:2016-07-26 17:39:08

标签: python pandas dataframe

我有一个Pandas数据框,其中包含一个名为Zip Code的列。该列是对象数据类型,某些行不是正确的邮政编码格式。我想删除不包含#####格式zipcode的行。

    Subscriber Type     Zip Code
0   Subscriber         94040
1   Customer           11231
2   Customer           11231
3   Customer           32
4   Customer           nil

这样做有什么简单的方法? 有没有办法比较格式和这样的记录? df.drop(df ['邮政编码']!= #####)

1 个答案:

答案 0 :(得分:5)

试试这个:

In [23]: df = df[df['Zip Code'].str.contains(r'^\d{5}$')]

In [24]: df
Out[24]:
  Subscriber Type Zip Code
0      Subscriber    94040
1        Customer    11231
2        Customer    11231

说明:

In [22]: df['Zip Code'].str.contains(r'^\d{5}$')
Out[22]:
0     True
1     True
2     True
3    False
4    False
Name: Zip Code, dtype: bool

PS感谢@Alberto Garcia-Raboso提供了精致的RegEx!