2016-06-20 9 views

答えて

4

はい、これは、あなたをサポートしていません...私はそれでdecimal.Decimal値を持つデータフレームを持っている、とdf.dropna()この理由はNaNを削除しないで

In [20]: 
import pandas as pd 
import decimal 
d = decimal.Decimal('NaN') 
df = pd.DataFrame({'a':[d]}) 
df 

Out[20]: 
    a 
0 NaN 

In [21]:  
df['a'].apply(lambda x: x != x) 

Out[21]: 
0 True 
Name: a, dtype: bool 

だから、あなたが行うことができます:

In [26]: 
df = pd.DataFrame({'a':[d,1,2,3]}) 
df[df['a'].apply(lambda x: x == x)] 

Out[26]: 
    a 
1 1 
2 2 
3 3 
はまだ Decimalタイプのために働くそれ自体に等しくないというプロパティを使用することができます
+0

あなたのソリューションはdecimal.Decimal値を保持するのに最適ですが、私はすべてのものをfloat64に変換するのが簡単になると思います。 – comte

+1

私はこの種の驚きを得られないのであなたの人生を楽にしてくれるので、numpy互換の 'dtype'sを使うことを強くお勧めします。 – EdChum

+0

df.dropna() Python 3.xで。 EdChumのソリューションが動作することを確認します。 –