2017-02-07 5 views
0

я следующий код:панды: не рассчитывайте нан в агрегатной функции

data_agg_df = data_df.groupby("team", as_index=False).player.agg({"player_set": lambda x: set(list(x)), "player_count": "nunique"}) 

Тогда мои результаты выглядят так:

team   player_set   player_count 
------------------------------------------------- 
A   {John, Mary}   2 
B   {nan}     0 
C   {Dave,nan}   1 

Мне интересно, как не показывать нана в player_set? то есть я хочу, чтобы результирующий фрейм данных выглядел так:

team   player_set   player_count 
------------------------------------------------- 
A   {John, Mary}   2 
B   {}     0 
C   {Dave}    1 

Спасибо!

ответ

1

заменить

set(list(x)) 

с

set(list(i for i in x if pd.notnull(i))) 

, чтобы вывезти nan s