2016-06-27 2 views
1

Пусть кадр данных будет иметь следующий вид:падение группы в GroupBy, которые не содержат элемент (Python панды)

import pandas as pd 

df = pd.DataFrame({"name":["A", "A", "B" ,"B", "C", "C"], 
        "nickname":["X","Y","X","Z","Y", "Y"]} 

Как я группа ДФ и отбросить эти группы (C), которые не содержат в по крайней мере один «Х»?

спасибо

ответ

4

Вы можете использовать сгруппированных по filter из панд:

df.groupby('name').filter(lambda g: any(g.nickname == 'X')) 

#  name nickname 
# 0  A   X 
# 1  A   Y 
# 2  B   X 
# 3  B   Z 
+0

спасибо Psidom. Я не знал о «любой» функции – dleal

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