2016-06-13 7 views
3

私は、Mysqlテーブルを読み込むためにパンダを使用すると、整数であったいくつかのカラム(「to_nlc」を参照)が浮動小数点数になりました。 誰でもそれを把握できますか?またはいくつかの推測?どうもありがとう!パンダがSQL整数を浮動小数点に変換

enter image description here enter image description hereenter image description here

答えて

5

問題はそうintを自動的floatにキャストされ、データがNaN値が含まれています。

私はあなたが NA type promotionsを確認することができると思い

REINDEXまたはいくつかの他の手段を介して既存のシリーズまたはデータフレームへのNAを導入する場合、ブール型と整数型は、NASを保存するために、異なるDTYPEに昇格されます。これらは、この表で要約されている:これは実際に私は、これは実際に問題である非常に少数の例を発見した、重いトレードオフのように見えるかもしれません

Typeclass Promotion dtype for storing NAs 
floating no change 
object  no change 
integer  cast to float64 
boolean  cast to object 

ながら。ここでの動機づけについては、次のセクションで説明します。

+1

どのようにこれを回避できますか?浮動小数点へのキャストが精度エラーを引き起こすように、整数が識別子として使用されます。 –

+0

@ HananShteingart - 'NaN'を' 0'に置き換えることは可能ですか? 'df [' colname '] = df [' colname ']のようなものですか?fillna()。astype(int) 'または' df = df.fillna(0).astype(int) '? – jezrael

+0

私はすでにSQLからfloatとして取得しています。私がしたのは、SQLクエリの列に列をキャストすることです。 CAST(bigint_column AS VARCHAR)ので、データフレーム内の文字列として取得します。とにかく列がIDを表しているので、数値ではないことは気にしませんでした。 –

関連する問題