#python #list #dataframe #twitter
Вопрос:
Я работаю с твитами, и у меня есть фрейм данных со списками строковых элементов:
df = pd.DataFrame([('parrot', [], 'tweet'),
('lion', ["covid"], 'tweet'),
('monkey', ["covid", "gripe"] , 'tweet')],
columns=('name_user', 'hashtags', 'full_text'))
Я хочу сгенерировать фильтры на основе элементов внутри столбца «хэштеги».
Есть ли способ извлечь все пустые списки или все списки, в которых есть содержимое?
Я хотел бы извлечь что — то вроде этого:
name_user hashtag
parrot []
или вот так:
name_user hashtag
lion ["covid"]
monkey ["covid", "gripe"]
Ответ №1:
Пустые:
df[df['hashtags'].apply(lambda x: len(x)) == 0]
Непустые:
df[df['hashtags'].apply(lambda x: len(x)) != 0]
Ответ №2:
Вы могли бы попробовать astype(bool)
:
print(df.loc[df['hashtags'].astype(bool)])
Выход:
name_user hashtags full_text
1 lion [covid] tweet
2 monkey [covid, gripe] tweet
Для пустых списков:
print(df.loc[~df['hashtags'].astype(bool)])
Выход:
name_user hashtags full_text
0 parrot [] tweet