use*_*236 7 python numpy pandas
我有一个python数据框,其中有一些异常值.我想用数据的中值替换它们,那些值不存在.
id Age
10236 766105
11993 288
9337 205
38189 88
35555 82
39443 75
10762 74
33847 72
21194 70
39450 70
Run Code Online (Sandbox Code Playgroud)
所以,我想用剩余数据集的数据集的中值替换所有> 75的值,即中值70,70,72,74,75.
我正在尝试执行以下操作:
但不知何故,下面的代码不起作用
df['age'].replace(df.age>75,0,inplace=True)
Run Code Online (Sandbox Code Playgroud)
Flo*_*oor 14
我认为这就是你要找的东西,你可以使用loc来赋值.然后你可以填补南
median = df.loc[df['Age']<75, 'Age'].median()
df.loc[df.Age > 75, 'Age'] = np.nan
df.fillna(median,inplace=True)
Run Code Online (Sandbox Code Playgroud)
您也可以在一行中使用np.where
df["Age"] = np.where(df["Age"] >75, median,df['Age'])
Run Code Online (Sandbox Code Playgroud)
你也可以使用.mask ie
df["Age"] = df["Age"].mask(df["Age"] >75, median)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9627 次 |
| 最近记录: |