2017-09-12 10 views
1

私はinfとnansの両方をドロップする必要があるdaskシリーズを持っています。 .dropna()は、nansのみを削除します。 numpy/pandasでは、私はresult = result[np.isfinite(result)]のような何かをするでしょう。 dask-landで推奨されるものは何ですか?ブール配列でdaskオブジェクトをインデックスすると、エラーが発生します。 infまたは-infをNULL値と見なすようにdaskに指示する方法はありますか?daskデータフレーム/シリーズからどのようにinfsを削除しますか?

答えて

0

NumPy機能を使用しないでください。これらは計算をトリガーし、将来のdask.dataframe操作はこれらの結果の使用を躊躇します。

代わりに、同等のdask.array関数を使用してください。ここには最小の例があります。

In [1]: import numpy as np 
    ...: import pandas as pd 
    ...: import dask.dataframe as dd 
    ...: import dask.array as da 
    ...: df = pd.DataFrame({'x': [0, 1, 2], 'y': [0, np.inf, 5]}) 
    ...: df 
    ...: 
Out[1]: 
    x   y 
0 0 0.000000 
1 1  inf 
2 2 5.000000 

In [2]: ddf = dd.from_pandas(df, npartitions=2) 
    ...: ddf[~da.isinf(ddf.y)].compute() 
    ...: 
Out[2]: 
    x y 
0 0 0.0 
2 2 5.0 
0

OKは、私はちょうど私が次の操作を行うことができますことを発見:それはちょうどda.配列操作を使用してのようになります。一般的には

import dask.array as da 
result = result[da.isfinite(result)] 

は私が探していた行方不明の作品です。

関連する問題