2017-04-14 17 views
0

ich eine Pandas Serie haben wie:Pandas Dataframe eine Reihe Runden

tempDF['A'] = dfOld.cl 

wo .cl eine Zeichenfolge ist:

23.340000 
24.350000 
...... 

Ich möchte es mit einem Schwimmer konvertieren dann Runde 2 Plätze

tempDF['A'] = round(dfOld.cl.astype(float),2) 

Ausgabe sollte sein:

23.34 
24.35 
..... 

Was ist der beste Weg, dies zu tun?

+2

was tun Sie, wenn Sie den Code ausführen Sie zur Verfügung gestellt „, tempDF [ 'A'] = round (dfOld.cl.astype (float) , 2) "? Dieser Code sieht korrekt aus. –

Antwort

1

Sie verwenden, um die pandas.Series.round Funktion, dies zu erreichen:

In [1]: import pandas as pd 

In [2]: dfOld = pd.DataFrame({'cl': ['0.014', '0.015', '0.016']}) 
dfOld.cl.apply(type).value_counts() # prove that the values are strings 

Out[2]: 
<type 'str'> 3 
dtype: int64 

In [3]: 
dfOld.cl.astype(float).round(decimals=2) 

Out[3]: 
0 0.01 
1 0.02 
2 0.02 
Name: cl, dtype: float64 
+0

Übrigens, wenn Sie 'jupyter-notebook' verwenden, können Sie' df.cl. 'um ein Popup zu erhalten, das alle Methoden auflistet, die an die' Serie' gebunden sind, und Sie können eine Zelle ausführen, die den Befehl 'dfOld.cl.round?' Enthält, um die Methodensignatur zu sehen. – kjfl