2017-10-12 1 views
2

をフロートする変更されていない私は、データフレームを持って、データ列の値が

df, 
    Name Stage Description 
0 sri  1  sri is one of the good singer in this two 
1 nan  2  thanks for reading 
2 ram  1  ram is two of the good cricket player 
3 ganesh 1  one driver 
4 nan  2  good buddies 

tried df["Stage"]=pd.to_numeric(df["Stage"],downcast="float") 

が、まだ値が同じ

+0

私はあなたが 'DF [ "舞台"] = pd.to_numeric([ "ステージ"] DF、エラーが= "強要")必要があると思います' – jezrael

+0

浮動小数点数の値を入力したい – pyd

+0

df ["ステージ"] = pd.to_numeric(df ["ステージ"]、エラー= "強制")でもまだ同じ – pyd

答えて

1

あるあなたはdf.Stage.astype(float)を使用することができます。

pd.to_numericを使用して
In [6]: df.Stage.astype(float) 
Out[6]: 
0 1.0 
1 2.0 
2 1.0 
3 1.0 
4 2.0 
Name: Stage, dtype: float64 

In [7]: df.Stage.astype(float) 

より少ないメモリを必要とするfloat型への変換を処理するので、より優れています。

In [23]: df.Stage 
Out[23]: 
0 1 
1 2 
2 1 
3 1 
4 2 
Name: Stage, dtype: int64 

In [24]: import sys 

In [25]: sys.getsizeof(df.Stage) 
Out[25]: 272 

In [26]: sys.getsizeof(df.Stage.astype(float)) 
Out[26]: 272 

In [27]: sys.getsizeof(pd.to_numeric(df.Stage, downcast='float')) 
Out[27]: 252 

df.Stageで不正なデータがある場合には、NaNpd.to_numeric(df.Stage, errors='coerce', downcast='float')

+0

が働いている、ありがとうございました – pyd

+0

@pyd :) – MedAli

3

に値を強制私はあなたがastypeが必要だと思う:

df["Stage"]=df["Stage"].astype(float) 

最初の場合いくつかの非数値データのために解が失敗しました。to_numeric wi番目のパラメータerrors='coerce'ためNaNsに不正なデータを交換するため、出力は浮動小数点数です:

df["Stage"]=pd.to_numeric(df["Stage"],errors="coerce") 
+0

Jezraelさん、ありがとうございます、このhttp://pandas.pydata.org/pandas-docs/version/0.20/generated/pandas.to_numeric.htmlの例では – pyd

+0

がうまく動作していますが、動作していますが、 float ' – pyd

+1

はい、次に 'df [" Stage "] = pd.to_numeric(df [" Stage "]、ダウンキャスト= "float") 'もうまくいくはずですが、すべてのデータが数値であれば、astypeが最適です。 – jezrael