#python #pandas #dataframe #google-trends
#python #панды #фрейм данных #google-тенденции
Вопрос:
Задавая этот вопрос в основном людям, которые используют Google trends, хотя он довольно общий.
Мой код в Google Trends возвращает df, такой как приведенный ниже.
1 2 3
Spain isPartial France isPartial Italy isPartial
date
2020-10-11 41 False 37 False 25 False
2020-10-18 40 False 39 False 23 False
2020-10-25 42 True 43 True 25 True
Естественно, я перепробовал много способов удалить последнюю строку, если она содержит True .
1) df2 = df[~df['isPartial].str.contains('True')] --> AttributeError: 'DataFrame' object has no attribute 'str'
2) df2 = df[~df.eq('True').any(1)] --> does nothing
3) df2 = df.[~[df[.iloc[:,1]].str.contains('True')] --> AttributeError: 'list' object has no attribute 'str'
Что мне делать?
Спасибо.
Ответ №1:
Используется DataFrame.xs
для выбора по второму уровню MultiIndex in columns
:
df1 = df[~df.xs('isPartial', axis=1, level=1).any(1)]
print (df1)
1 2 3
Spain isPartial France isPartial Italy isPartial
date
2020-10-11 41 False 37 False 25 False
2020-10-18 40 False 39 False 23 False
Подробнее:
print (df.xs('isPartial', axis=1, level=1))
1 2 3
date
2020-10-11 False False False
2020-10-18 False False False
2020-10-25 True True True
Комментарии:
1. «Красивое лучше, чем уродливое. […] Простое лучше, чем сложное «. @jezrael Спасибо!