2017-03-21 3 views

Antwort

8

Wenn nicht numerische Werte müssen ersetzen verwenden to_numeric mit Parameter errors='coerce':

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 
+0

was bedeutet errors = 'corece'? – latish

+0

Es ersetzt nicht numerisch zu NaN. – jezrael

+0

und dann ["fillna"] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.fillna.html) ersetzen Sie "NaN" durch irgendein int, z. '0' – jezrael

1

Verwenden numpy wo nicht einstelligen Wert zu finden, ersetzen mit '0'.

df['New']=df.Salary.apply(lambda x: np.where(x.isdigit(),x,'0')) 
Verwandte Themen