У меня есть объект 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 на месте.