我通过执行以下操作来遵循指定indexing-view-versus-copy的说明:
df.loc[:,('ratio')][np.isinf(df.loc[:,('ratio')])] =np.nan
但是我收到SettingWithCopyWarning
警告。基本上我想在我除以零的情况下将inf
值设置为np.nan
。
<string>:265: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
答案 0 :(得分:1)
基本上,您正在做的是chained indexing
:您首先选择列,然后从返回的数据框中选择行。 df.loc[np.isinf(df['ratio']), 'ratio'] = np.nan
允许您同时选择它们。它也接受一个布尔数组,所以你可以这样做:
Analyzer