Google Trends — удалить последнюю строку, если isPartial имеет значение true

#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 Спасибо!