检查组是否具有NaN值

Art*_*iev 3 python python-2.7 python-3.x pandas

我有一个数据框,我想groupbybq_market_id然后检查每个组中是否有NaN值,bq_back_price如果是,则True每个组,如果否,则False每个组。

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
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?我尝试了以下操作,但没有成功。

bb.groupby('bq_market_id')['bq_back_price'].isnull().any()
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 5

我认为您可以使用apply

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
Run Code Online (Sandbox Code Playgroud)

示例(列bq_market_id中的某些值已更改):

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
Run Code Online (Sandbox Code Playgroud)