2017-02-07 4 views
0

Ich habe den folgenden Code:Pandas: zählen nicht nan in einer Aggregatfunktion

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

Dann schauen meine Ergebnisse wie:

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

Ich frage mich, wie nicht die nana in der Show player_set? das heißt ich die resultierende Datenrahmen aussehen wollen wie:

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

Dank!

Antwort

1

ersetzen
set(list(x)) 

mit

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

die nan

s nehmen
Verwandte Themen