나는 infs와 nans를 모두 드롭해야하는 dask 시리즈를 가지고있다. .dropna()
은 nans 만 삭제합니다. numpy/pandas에서 나는 result = result[np.isfinite(result)]
과 같은 것을 할 것입니다. dask-land에서 추천되는 것은 무엇입니까? 부울 배열로 dask 객체를 인덱싱하면 오류가 발생합니다. inf
또는 -inf
을 null 값으로 간주해야한다고 dask에 알리는 방법이 있습니까?dask 데이터 프레임/시리즈에서 infs를 어떻게 삭제합니까?
1
A
답변
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
확인, 난 그냥 다음 작업을 수행 할 수 있다는 것을 발견 : 그냥 da.
배열 작업을 사용과 같은 일반적으로
import dask.array as da
result = result[da.isfinite(result)]
내가 찾고 있던 누락 된 작품이다.