我有一个看起来像的数据框
City Crime_Rate
A 10
B 20
C inf
D 15
我想用 Crime_Rate 列的最大值替换 inf,这样我得到的数据框应该看起来像
City Crime_Rate
A 10
B 20
C 20
D 15
我试过了
df['Crime_Rate'].replace([np.inf],max(df['Crime_Rate']),inplace=True)
但是 python 将 inf 作为最大值,我哪里出错了?
请您参考如下方法:
先过滤掉inf值,然后得到Series的max:
m = df.loc[df['Crime_Rate'] != np.inf, 'Crime_Rate'].max()
df['Crime_Rate'].replace(np.inf,m,inplace=True)
另一种解决方案:
mask = df['Crime_Rate'] != np.inf
df.loc[~mask, 'Crime_Rate'] = df.loc[mask, 'Crime_Rate'].max()
print (df)
City Crime_Rate
0 A 10.0
1 B 20.0
2 C 20.0
3 D 15.0
