2017-02-08 3 views
2

ich gestoßen, ein solches Problem

import pandas as pd 
df = pd.DataFrame({ 
    'name': ['Alice','John','Peter','Richard'], 
'salary': ['90000', '1000$', '80000', '900$'] 

})

Einige Zellen in der nationalen Währung & einige in US-Dollar sind. Ich möchte eine neue Variable erstellen, die nationale Währung & einige in US-Dollar zu teilen, wie unten

df['$'] = 1 
df.ix[df['salary'].str.contains("$") == True, '$' ] =70 

obwohl ich

bekommen
df['$'] 
0 70 
1 70 
2 70 
3 70 
Name: $, dtype: int64 

Ich denke, das Problem $ Meta-Zeichen in diesem Fall ist und ich muss wandle es in eine Zeichenfolge um. Wie man es repariert?

Antwort

1

Sie benötigen numpy.where, $ ist Sonderzeichen in regex muss so entkommen, indem \:

df['$'] = np.where(df['salary'].str.contains("\$"), 70, 1) 
print (df) 
     name salary $ 
0 Alice 90000 1 
1  John 1000$ 70 
2 Peter 80000 1 
3 Richard 900$ 70 
+0

I „df [ '$'] = np.where (df [ 'Gehalt'] gemacht habe. str.contains ("\ $"), 70, 1) "& get nur 70 dann df.ix [df ['Gehalt']. str.contains (" \ $ ") == True, '$'] = 70 & das ist in Ordnung! – Edward

+0

Ja, aber Lösungen funktionieren. Ich danke Ihnen für die Annahme! – jezrael

+0

es funktioniert, das Problem ist gelöst! – Edward

Verwandte Themen