2015-07-08 11 views
5

Próbowałem ustawić niektóre wartości w serii, ale automatycznie zaokrąglone zostaną do liczby całkowitej, co należy zrobić, aby temu zapobiec?Python: zapobieganie wartościom w zaokrągleniu serii Pandas do liczby całkowitej

from __future__ import division 
import pandas as pd 

In [100]: series = pd.Series(range(20)) 

In [101]: series[10] 
Out[101]: 10 

In [102]: series[10] = 0.05 

In [103]: series[10] 
Out[103]: 0 

In [104]: series[10] = 2.5 

In [105]: series[10] 
Out[105]: 2 

In [106]: series[10] = float(2.5) 

In [107]: series[10] 
Out[107]: 2 

In [108]: float(2/3) 
Out[108]: 0.6666666666666666 

In [109]: series[10] = float(2/3) 

In [110]: series[10] 
Out[110]: 0 
+0

[dokumentacja pandas.Series] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.html) - jako odpowiedź już wspomniano, wygląda na to, że chcesz użyć 'dtype = (type)'. –

+0

Dzięki Chris! Powinienem przejrzeć dokumentację przed pytaniem. – Jim

Odpowiedz

5

series jest tworzony automatycznie z typem int64 danych (od range(20) zawiera tylko liczby całkowite). Kiedy próbujesz ustawić wartość tej Serii na wartość zmiennoprzecinkową, wartości są obcinane do liczby całkowitej, ponieważ Pandy nie będą automatycznie promować typu danych Serii. *

Najprostszym sposobem jest stworzenie Serii z wymaganym typem danych:

series = pd.Series(range(20), dtype=float) 

Albo można rzutować całkowitą Series raz został stworzony:

series = series.astype(float) 

będziesz wtedy mógł ustawić wartości pływaka serii.


* To jest trochę podobne do zachowania NumPy z tablicami. Jednak w przeciwieństwie do NumPy, Pandy będzie promować typ danych serialu od całkowitej do rodzaju pływające jeśli spróbujesz ustawić nan wartość:

series[10] = np.nan # series is promoted to float64 type 

Pandy będzie również promować serię do object typu danych, jeśli spróbujesz ustawić wartość ciągu:

series[5] = 'some string' # series is promoted to object type 
+0

Dziękuję bardzo! Działa doskonale! – Jim

+0

@ Jim: Cieszę się, że pomogło! –

Powiązane problemy