Python Pandas: Удалите строки из фрейма данных, если список строковых значений == [none]

У меня есть столбец в моем фрейме данных, содержащий списки значений.

           Tags
     [marvel, comics, comic, books, nerdy]
     [new, snapchat, version, snap, inc]
     [none]
     [new, york, times, ny, times, nyt, times]
     [today, show, today, show, today]
     [none]
     [mark, wahlberg, marky, mark]

Я не знаю, как удалить этот [нет] список из фрейма данных. Я старался,

           us_videos = us_videos.drop(us_videos.index[us_videos.tags == 'none'])

Но это работает только тогда, когда я превращаю столбец в строку. Как этого добиться?

3 ответа

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

      us_videos = us_videos[~us_videos.tags.astype(str).str.contains(r'\bnone\b')]

explode

      us_videos[us_videos.tags.explode().ne('none').any(level=0)]

                                        tags
0      [marvel, comics, comic, books, nerdy]
1        [new, snapchat, version, snap, inc]
3  [new, york, times, ny, times, nyt, times]
4          [today, show, today, show, today]
6              [mark, wahlberg, marky, mark]

list.__ne__

      us_videos[us_videos.tags.map(['none'].__ne__)]

                                        tags
0      [marvel, comics, comic, books, nerdy]
1        [new, snapchat, version, snap, inc]
3  [new, york, times, ny, times, nyt, times]
4          [today, show, today, show, today]
6              [mark, wahlberg, marky, mark]

Сначала создает функцию, которая делает это за вас:

      def func(val):
    if 'none' in val[0]:
        return None
    else:
        return val

Теперь используйте apply() метод: -

      us_videos['Tags']=us_videos['Tags'].apply(func).dropna()
Другие вопросы по тегам