2017-11-12 12 views
1

データ型の異なるセル(String、float、Integer、...)を持つ配列があります。Python pandas/numpy値が1のセルに0、0に0のセルを埋めます。

他のすべて

[[18 '1/4/11' 73.0 'Male' 4.0] 
[18 nan 73.0 'Male' nan] 
[18 '7/5/11' 73.0 'Male' 7.0]] 

そして、私は値nanでセルに0を割り当てると、1

予想結果:パンダのfillna(0)

[[1 1 1 1 1 
    1 0 1 1 0 
    1 1 1 1 1]] 

、私はnanを埋めることができますよ0、しかし、データが異なる型の場合、利用可能な値を持つすべてのセルに1を代入する方法はありますか?

答えて

0

ブールマスクを作成し、整数にキャスト:

~(np.isnan(arr)).astype(int) 

または:

pd.notnull(arr).astype(int) 
1

それがデータフレームまたはndarrayのかどうか、あなたはpd.notnullを使用することができます。

>>> arr = np.array([[18, '1/4/11', 73.0, 'Male', 4.0], 
...     [18, np.nan, 73.0, 'Male', np.nan], 
...     [18, '7/5/11', 73.0, 'Male', 7.0]], dtype=object) 
>>> pd.notnull(arr) 
array([[ True, True, True, True, True], 
     [ True, False, True, True, False], 
     [ True, True, True, True, True]], dtype=bool) 
関連する問題