2016-03-28 17 views
1

Bir dataframe var ve bq_market_id tarafından groupby ister ve her grupta bq_back_price herhangi NaN değerleri varsa o zaman kontrol ediyorum değerleri eğer evet grup başına sonra True hiçbir ardından False grup başına eğer.Kontrol

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 

Bunu nasıl yaparım? Aşağıdakileri denedim, ama işe yaramadı. (Sütunda bq_market_id bazı değerler değiştirilirse)

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 

Numune:

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

cevap

2

Sana apply kullanabilirsiniz düşünüyorum

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