Python 如何替换数据帧中的非整数值?
我有一个由两列组成的数据框,年龄和薪水Python 如何替换数据帧中的非整数值?,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个由两列组成的数据框,年龄和薪水 Age Salary 21 25000 22 30000 22 Fresher 23 2,50,000 24 25 LPA 35 400000 45 10,00,000 如何处理薪资列中的异常值并将其替换为整数 如果需要替换非数值,请使用参数errors='concurve': df['new'] = pd.to_numeric(df.Salary.astype(str).str.replace(',',''
Age Salary
21 25000
22 30000
22 Fresher
23 2,50,000
24 25 LPA
35 400000
45 10,00,000
如何处理薪资列中的异常值并将其替换为整数 如果需要替换非数值,请使用参数
errors='concurve'
:
df['new'] = pd.to_numeric(df.Salary.astype(str).str.replace(',',''), errors='coerce')
.fillna(0)
.astype(int)
print (df)
Age Salary new
0 21 25000 25000
1 22 30000 30000
2 22 Fresher 0
3 23 2,50,000 250000
4 24 25 LPA 0
5 35 400000 400000
6 45 10,00,000 1000000
使用numpy where查找非数字值,替换为“0”
df['New']=df.Salary.apply(lambda x: np.where(x.isdigit(),x,'0'))
如果使用Python3,请使用以下命令。我不确定其他Python版本如何返回type(x)。但是,我不会用0替换丢失或不一致的值,最好用None替换它们。但假设您想用0替换字符串值(异常值或不一致值):
df['Salary']=df['Salary'].apply(lambda x: 0 if str(type(x))=="<class 'str'>" else x)
df['Salary']=df['Salary'].apply(如果str(type(x))==“else x,则lambda x:0)
它将非数字替换为NaN,然后将NaN
替换为某些整数,例如0
错误有三个选项:raise
是默认值,当遇到非数字字符时抛出错误<代码>强制遇到非数字字符时返回NaN
ignore
无法转换为数值时返回原始值。@latish-请检查上次编辑,需要将值转换为str
,因为混合了内容-int
和str
values@jezrael对于多个列,这是什么样子的?df['col']=df['col'].str.replace(“[^0-9]”,“”)
如果你想用它来替换一个值的一部分,比如说它是25倍,你想它是250倍,那该怎么办?