pandas GroupBy列にNaN(欠損)値がある 質問する

pandas GroupBy列にNaN(欠損)値がある 質問する

グループ化したい列に多くの欠損値がある DataFrame があります。

import pandas as pd
import numpy as np
df = pd.DataFrame({'a': ['1', '2', '3'], 'b': ['4', np.NaN, '6']})

In [4]: df.groupby('b').groups
Out[4]: {'4': [0], '6': [2]}

デフォルトでは、pandas groupbyグループ化された列に NaN が含まれる行が削除されます。

NaN 値をグループとして含めるにはどうすればよいですか?

ベストアンサー1

パンダ >= 1.1

pandas 1.1からは、この動作をより細かく制御できるようになりました。グループ化でNA値が許可されるようになりました使用dropna=False

pd.__version__
# '1.1.0.dev0+2004.g8d10bfb6f'

# Example from the docs
df

   a    b  c
0  1  2.0  3
1  1  NaN  4
2  2  1.0  3
3  1  2.0  2

# without NA (the default)
df.groupby('b').sum()

     a  c
b        
1.0  2  3
2.0  2  5
# with NA
df.groupby('b', dropna=False).sum()

     a  c
b        
1.0  2  3
2.0  2  5
NaN  1  4

おすすめ記事