Когда применять (pd.to_numeric) и когда использовать astype (np.float64) в python?
У меня есть объект DataFrame панды с именемxiv
который имеет столбецint64
Измерения объема.
In[]: xiv['Volume'].head(5)
Out[]:
0 252000
1 484000
2 62000
3 168000
4 232000
Name: Volume, dtype: int64
Я прочитал другие сообщения (какэтот а такжеэтот), которые предлагают следующие решения. Но когда я использую любой из этих подходов,dtype
исходных данных:
In[]: xiv['Volume'] = pd.to_numeric(xiv['Volume'])
In[]: xiv['Volume'].dtypes
Out[]:
dtype('int64')
Или же...
In[]: xiv['Volume'] = pd.to_numeric(xiv['Volume'])
Out[]: ###omitted for brevity###
In[]: xiv['Volume'].dtypes
Out[]:
dtype('int64')
In[]: xiv['Volume'] = xiv['Volume'].apply(pd.to_numeric)
In[]: xiv['Volume'].dtypes
Out[]:
dtype('int64')
Я также пытался сделать отдельные пандыSeries
и используя методы, перечисленные выше в этой серии и переназначенияx['Volume']
объект, который являетсяpandas.core.series.Series
объект.
Однако я нашел решение этой проблемы с помощьюnumpy
пакет-хfloat64
тип -это работает, но я не знаю, почему это отличается.
In[]: xiv['Volume'] = xiv['Volume'].astype(np.float64)
In[]: xiv['Volume'].dtypes
Out[]:
dtype('float64')
Может кто-нибудь объяснить, как это сделать сpandas
библиотека чтоnumpy
библиотека, кажется, легко справляется со своимиfloat64
учебный класс; то есть преобразовать столбец вxiv
DataFrame дляfloat64
на месте.