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