0
データフレーム内のいくつかのNaN値を修正しようとしています。私の計画は、他の2つの関連する列(aとb)を使用して行をグループ化し、列cの最も頻繁でないNaN値を各グループで調べ、その列を使用して、グループ。groupbyから最適な選択でNaNを素早く埋める方法
以下のコードは動作しますが、非常に遅いです。約3百万行のデータフレームで数時間動作しています。
これを行う方法に関する提案はありますか? mode
方法に建て
def fillna_with_best(x):
m = mode(x['c'])
if m.count[0] > 0:
x['c'].fillna(m.mode[0], inplace=True)
return x
df = df.groupby(['a', 'b']).apply(lambda x: fillna_with_best(x))