2016-08-10 1 views
-1

У меня есть dataframe ДФ следующим образом, я хочу, чтобы удалить или удалить строки, которые зовут Том, я использую следующий код (python3):Панды dataframe: удалить все строки на основе значения одного столбца с питоном

df1[~df1['name'].str.contains('tom')] 

но есть ошибка:

AttributeError: Cannot access attribute 'str' of 'SeriesGroupBy' 
    objects, try using the 'apply' method 


name age weight 
tom  10 40 
lucy 15 50 
john 20 60 
tom  10 40 
lucy 15 50 
john 20 60 
tom  10 40 
kate 30 70 
tick 40 75 
bruce 50 75 

Пожалуйста, помогите мне решить эту проблему, это только пример данные, так как реальный dataframe большого размера. если у вас есть быстрое решение, скажите, пожалуйста. заранее спасибо!

+1

ошибка говорит, что 'df1' является' SeriesGroupBy' объект, а не DataFrame. По-видимому, DataFrame с столбцами 'name',' age', 'weight' не является' df1'. – unutbu

ответ

2

Попробуйте это:

df[df["name"] != 'tom'] 

or 

df[~df['name'].str.contains('tom')] 

To remove on multiple criteria -- "~" is return opposite of True/False 

df2[~(df2["name"].isin(['tom','lucy']))] 
+0

привет за ваш ответ, но есть ошибка: KeyError: «Колонка не найдена: True» – tktktk0711

+0

спасибо, оба работают для меня. – tktktk0711

+0

привет @Merlin, как насчет удаления строк, которые называют tom и lucy. не могли бы вы помочь мне снова! – tktktk0711

Смежные вопросы