what is the quickest/simplest way to drop nan and inf/-inf values from a pandas DataFrame without resetting mode.use_inf_as_null
? I'd like to be able to use the subset
and how
arguments of dropna
, except with inf
values considered missing, like:
df.dropna(subset=["col1", "col2"], how="all", with_inf=True)
is this possible? Is there a way to tell dropna
to include inf
in its definition of missing values?
The simplest way would be to first replace
infs to NaN:
df.replace([np.inf, -np.inf], np.nan)
and then use the dropna
:
df.replace([np.inf, -np.inf], np.nan).dropna(subset=["col1", "col2"], how="all")
For example:
In [11]: df = pd.DataFrame([1, 2, np.inf, -np.inf])
In [12]: df.replace([np.inf, -np.inf], np.nan)
Out[12]:
0
0 1
1 2
2 NaN
3 NaN
The same method would work for a Series.