2017-01-28 3 views
4

у меня есть dataframe как этотудалить пример из dataframe панд питона

 Phrase       Sentiment 

    [ good , movie ]     positive 

    [wooow ,is , it ,very, good ] positive 

     []        negative 
     []        pOSTIVE 

колонка типа Фраза является объектом и необходимо удалить строки, содержащие [] и я не знаю, хо сделать это с помощью Python

так:

Phrase       Sentiment 

    [ good , movie ]     positive 

    [wooow ,is , it ,very, good ] positive 
+0

@MYGz ДА ТОЧНО –

ответ

5

Вы можете проверить наличие пустых списков по str.len()==0 и фильтровать DF, основываясь на этом путем выполнения например, операции.

df[df.Phrase.str.len() != 0] 

enter image description here

Чтобы узнать строки, где пустые списки присутствуют:

df.Phrase.str.len() == 0 

0 False 
1 False 
2  True 
3  True 
Name: Phrase, dtype: bool 

Incase есть пустые строки присутствуют, их длина также приравнивают к нулю. В этом случае фильтрация по их типу была бы полезной, используя пользовательскую функцию на map.

df[df.Phrase.map(lambda x: len(x) if isinstance(x, list) else None) != 0] 

Если они строковое представление списков, то вы можете фильтровать непосредственно на них, чтобы получить subsetted DF:

df[df.Phrase != "[]"] 
+1

Это не кажется, правильный список для меня. Возможно, OP забыл поставить кавычки или это строка. Также обновите строку. – MYGz

3

пустые списки [] оценки для False

df[df.Phrase.astype(bool)] 

         Phrase Sentiment 
0    [good, movie] positive 
1 [woow, is, it, very, good] positive 

установка

df = pd.DataFrame([ 
     [['good', 'movie'], 'positive'], 
     [['woow', 'is', 'it', 'very', 'good'], 'positive'], 
     [[], 'negative'], 
     [[], 'pOSITIVE'] 
    ], columns=['Phrase', 'Sentiment']) 
Смежные вопросы