2013-12-08 16 views
9

Voglio turno pandas.DataFrame.Il modo giusto per arrotondare pandas.DataFrame?

Ecco quello che ho provato finora:

import pandas as pd 
data = pd.DataFrame([1.4,2.5,3.8,4.4,5.6],[6.2,7.6,8.8,9.1,0]) 
print(round(data)) 

Ma quando ho eseguito questo codice, ottengo il seguente errore:

Traceback (most recent call last): 
    File "C:\Users\*****\Documents\*****\******\****.py", line 3, in <module> 
    print(round(data)) 
TypeError: type DataFrame doesn't define __round__ method 

Qual è il modo giusto per arrotondare pandas.DataFrame?

+0

Dup di http://stackoverflow.com/q/19100540/564538 –

risposta

13

prima, si consiglia di cambiare la definizione della cornice di dati, qualcosa di simile:

data = pd.DataFrame([[1.4,2.5,3.8,4.4,5.6],[6.2,7.6,8.8,9.1,0]]).T 

che si traduce in questo modo:

 0 1 
0 1.4 6.2 
1 2.5 7.6 
2 3.8 8.8 
3 4.4 9.1 
4 5.6 0.0 

o:

data = pd.DataFrame({'A':[1.4,2.5,3.8,4.4,5.6],'B':[6.2,7.6,8.8,9.1,0]}) 

così che ottieni due colonne, altrimenti l'altra lista viene rilevata come indice; poi:

data.apply(pd.Series.round) 

o

import numpy as np 
data.apply(np.round) 
+0

questo arrotonda solo prima colonna –

+2

il modo in cui si stanno facendo la dataframe, l'altra colonna è indice, panda si applicano le funzioni di non colonne l'indice –

+0

che dire delle serie, come posso arrotondarle? Le serie –

Problemi correlati