У меня есть объект pandas DataFrame с именем xiv
, который имеет столбец int64
Измерения объема.
In[]: xiv['Volume'].head(5)
Out[]:
0 252000
1 484000
2 62000
3 168000
4 232000
Name: Volume, dtype: int64
Я прочитал другие сообщения (например this и this), которые предлагают следующие решения. Но когда я использую любой подход, он не изменяет 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')
Я также попытался сделать отдельный pandas Series
и использовать методы, перечисленные выше в этой серии, и переназначить на объект x['Volume']
, который является объектом pandas.core.series.Series
.
Однако я нашел решение этой проблемы, используя numpy
package float64
type - , но я не знаю, почему он отличается.
In[]: xiv['Volume'] = xiv['Volume'].astype(np.float64)
In[]: xiv['Volume'].dtypes
Out[]:
dtype('float64')
Может кто-нибудь объяснить, как выполнить с библиотекой pandas
, что библиотека numpy
, кажется, делает легко с ее классом float64
; то есть преобразовать столбец в xiv
DataFrame в float64
на месте.