2015-09-28 4 views
0

У меня есть большая группа данных и меньший список идентификаторов, которые являются подмножеством этого фрейма данных. Иды - это имена групп. Я хотел бы удалить все группы, которых нет в списке идентификаторов.Удаление групп из pandas groupby dataframe

Я попытался это:

for name, group in groups_copy: 
    if name in ids: 
     print "¯\_(ツ)_/¯" 
    else: 
     groups_copy.drop(groups_copy.loc[name]) 

и получил эту ошибку: AttributeError: Cannot access callable attribute 'drop' of 'DataFrameGroupBy' objects, try using the 'apply' method

Мысли на лучший способ сделать это?

ответ

1

Самый простой способ - это, вероятно, отфильтровать его перед групповым голосованием.

df = df[df['groupby_column'].isin(ids)]

+0

Да, было интересно, есть ли другой способ, потому что список идентификаторов строится от сводных данных, которые я получаю от GroupBy – metersk

+1

Hm. Если вы можете посмотреть на каждую группу и вычислить (по-группе), хотите ли вы ее сохранить, вы можете использовать 'df.groupby ('col'). Filter'. В противном случае вам просто нужно сначала сгруппировать, чтобы получить сводные данные, затем отфильтровать, а затем снова сгруппировать. – exp1orer

Смежные вопросы