我有一个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 ['邮政编码']!= #####)
答案 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!