2016-03-28 27 views
1

ich einen Datenrahmen haben und ich würde groupby durch bq_market_id mögen und dann prüfen, ob es irgendwelche NaN Werte in bq_back_price in jeder Gruppe ist, wenn ja, dann True pro Gruppe, wenn nicht dann False pro Gruppe.Überprüfen Sie, ob die Gruppe NaN hat Werte

bq_selection_id bq_balance bq_market_id bq_back_price 
0   45094462  185.04  7278437   1.97 
1   45094462  185.04  7278437   1.97 
2   45094463  185.04  7278437   3.05 
3   45094463  185.04  7278437   3.05 
4   45094464  185.04  7278437   5.80 
5   45094464  185.04  7278437   5.80 
6   45094466  185.04  7278437   200.00 
7   45094466  185.04  7278437   200.00 
8   45094465  185.04  7278437   NaN 
9   45094465  185.04  7278437   NaN 

Wie mache ich das? Ich habe folgendes versucht, aber es hat nicht funktioniert.

bb.groupby('bq_market_id')['bq_back_price'].isnull().any() 

Antwort

2

Ich glaube, Sie apply verwenden können:

print bb.groupby('bq_market_id')['bq_back_price'].apply(lambda x: x.isnull().any()) 
bq_market_id 
7278437 True 
Name: bq_back_price, dtype: bool 

Probe (einige Werte in Spalte bq_market_id geändert):

print bb 
    bq_selection_id bq_balance bq_market_id bq_back_price 
0   45094462  185.04    1   1.97 
1   45094462  185.04    1   1.97 
2   45094463  185.04    1   3.05 
3   45094463  185.04  7278437   3.05 
4   45094464  185.04  7278437   5.80 
5   45094464  185.04  7278437   5.80 
6   45094466  185.04  7278437   200.00 
7   45094466  185.04  7278437   200.00 
8   45094465  185.04  7278437   NaN 
9   45094465  185.04  7278437   NaN 

print bb.groupby('bq_market_id')['bq_back_price'].apply(lambda x: x.isnull().any()) 
bq_market_id 
1   False 
7278437  True 
Name: bq_back_price, dtype: bool 
Verwandte Themen