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()