我有一個名爲xiv
的pandas DataFrame對象,其中有一列int64
卷測量。何時應用(pd.to_numeric)以及何時在python中使用astype(np.float64)?
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')
我也試着做一個單獨的大熊貓Series
和使用該系列上面列出的方法並重新分配至x['Volume']
obect,這是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
。
'int64'已經是「數字」dtype。 'to_numeric()'應該有助於將字符串轉換爲數字dtypes ... – MaxU
引用的帖子顯示通過調用'to_numeric'返回的'dtype'將會是'float64' ... – d8aninja
選中此項:'pd.to_numeric(pd。系列([ '1', '2', '3']))。dtype'。只有在必要時它纔會是float64:1.系列中有NaN或不可轉換的值。 2.系列中有浮標 – MaxU