如何用熊猫列的最大值替换无限值?

Mos*_*man 3 python replace infinite pandas

我有一个看起来像的数据框

City   Crime_Rate

A      10

B      20 

C      inf

D      15 
Run Code Online (Sandbox Code Playgroud)

我想用 Crime_Rate 列的最大值替换 inf,这样我的结果数据框应该看起来像

City   Crime_Rate

A      10

B      20 

C      20

D      15
Run Code Online (Sandbox Code Playgroud)

我试过

df['Crime_Rate'].replace([np.inf],max(df['Crime_Rate']),inplace=True)
Run Code Online (Sandbox Code Playgroud)

但是python将inf作为最大值,我哪里出错了?

jez*_*ael 7

过滤掉inf第一个值,然后得到maxSeries

m = df.loc[df['Crime_Rate'] != np.inf, 'Crime_Rate'].max()
df['Crime_Rate'].replace(np.inf,m,inplace=True)
Run Code Online (Sandbox Code Playgroud)

另一种解决方案:

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
Run Code Online (Sandbox Code Playgroud)