2016-06-15 5 views
3

私が書いたレガシーコードのすべてが機能しなくなるという問題があります。Pandasに「float64」ではなく「int64」として数値を読み込ませる方法

私はパンダがExcelファイルを読み込み、int64として読み込む代わりに、float64として読み込みます。異なるデータ型で.mergeまたは.isinを実行できないため、問題です。私はdf.blah.astype(int)を使うことができることを知っていますが、それはリファクタリングにとって非常に不便であり、必要でないはずです。

これは何が原因かわかりません。私は、Windows 10、Python 3.5、Pandas 18.1の新しいビルドに取り組んでいます。変更されたのは、Windows 7とPandas 18.0からのアップグレードだけでした。

パンダに変更はありましたか?リリースノートに変更がありません。

ありがとうございました!

答えて

1

intの間の問題の欄には、値があると思います。NaNです。したがってpandasは自動的にintfloatに変換します。

Na type promotions

あなたはboolean indexingisnullて値を確認することができます。

import pandas as pd 
import numpy as np 

df = pd.DataFrame({'A':[1,2,np.nan], 
        'B':[4,5,6]}) 

print (df) 
    A B 
0 1.0 4 
1 2.0 5 
2 NaN 6 

print (df[df.A.isnull()]) 
    A B 
2 NaN 6 
+0

Na型のプロモーションを指摘してくれてありがとうを。私は今問題が私のint64列に混在Naに関連していることがわかります。 – Matt

関連する問題