2015-01-30 4 views
2

У меня есть столбец в моей кадре данных, который я бы хотел преобразовать в тип данных int. Однако это вызывает ошибку, потому что некоторые из строк имеют буквы в своих записях. Я хотел бы создать новую фреймворк данных, в которой есть только записи в этом столбце с чистыми числами (или, по крайней мере, без букв).Pandas Python: Удалить строки DF, которые имеют ASCII-письма

Так что мой вопрос: Есть ли способ сделать что-то вроде следующего,

df=df[df['addzip'].str.contains("a")==False] 

Но список, где «а»? Смотрите пример ниже,

df=df[df['addzip'].str.contains(list(str(string.ascii_lowercase)+str(string.ascii_uppercase)))==False] 

Я знаю, что это вполне возможно сделать с помощью команды применяется, но я хотел бы, чтобы это как векторные, насколько это возможно, так что это не то, что я ищу. До сих пор я не нашел решений нигде в переполнении стека.

ответ

4

Просто использовать регулярное выражение

df = df[~df['addzip'].str.contains("[a-zA-Z]").fillna(False)] 
+1

@unutbu Хороший вопрос, я, наверное, неправильно предполагая строки ... Ответ обновляются – Alex

+0

@Alex Отлично. Это именно то, что я искал. :) Отлично. Я знал, что должен быть способ сделать это, не прибегая к функции приложения. Огромное спасибо. – sfortney