Wann in Python anwenden (pd.to_numeric) und wann eingeben (np.float64)?

Ich habe ein Pandas DataFrame-Objekt mit dem Namenxiv welches eine Spalte von @ hint64 Volumenmessungen.

In[]: xiv['Volume'].head(5)
Out[]: 

0    252000
1    484000
2     62000
3    168000
4    232000
Name: Volume, dtype: int64

Ich habe andere Beiträge gelesen (wieDie undDie), die die folgenden Lösungen vorschlagen. Aber wenn ich einen der beiden Ansätze verwende, scheint sich das @ nicht zu änderdtype der zugrunde liegenden Daten:

In[]: xiv['Volume'] = pd.to_numeric(xiv['Volume'])

In[]: xiv['Volume'].dtypes
Out[]: 
dtype('int64')

Oder..

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')

Ich habe auch versucht, eine separate PandasSeries und unter Verwendung der oben in dieser Serie aufgelisteten Methoden und Neuzuweisung zumx['Volume'] obect, das ist einpandas.core.series.Series Objekt

Ich habe jedoch mit dem @ eine Lösung für dieses Problem gefundenumpy Paketefloat64 Art -dies funktioniert, aber ich weiß nicht, warum es anders ist.

In[]: xiv['Volume'] = xiv['Volume'].astype(np.float64)

In[]: xiv['Volume'].dtypes
Out[]: 
dtype('float64') 

Kann jemand erklären, wie mit dem @ zu erreichpandas Bibliothek, was zumnumpy Bibliothek scheint leicht mit seinem @ zu tfloat64 Klasse; das heißt, konvertieren Sie die Spalte in derxiv DataFrame zu einemfloat64 an Ort und Stelle

Antworten auf die Frage(6)

Ihre Antwort auf die Frage