2017-08-23 17 views
2

別のquestionを解決しようとする過程で、私はロードブロッキングを打ちました。ここに私のデータがあります:パンダのデータフレームでNaNを可変型に置き換える

 col1 col2  col3 col4  col5 user_ID 
0  [1]  [3]   []  NaN  NaN  1 
1 [2, 3]  [3] [1, 2, 3]  NaN  NaN  2 
2  [3] [3, 1]  [3, 1]  NaN  NaN  3 
0 [1, 2]  NaN  [1]  [3]  NaN  1 
1  [3]  NaN  [2, 3]  [3]  NaN  2 
2  [3]  NaN  [3] [3, 1]  NaN  3 
0  [1]  [3]  NaN  NaN   []  1 
1 [2, 3]  [3]  NaN  NaN [1, 2, 3]  2 
2  [3] [3, 1]  NaN  NaN  [3, 1]  3 

私はそれらの列に沿って和を実行できるように空のリストと、それらのNaNを交換したいです。

私もdf.fillnaを試してみましたが、私は空のリスト[]でこれらNaNを埋めることができますどのように

TypeError: "value" parameter must be a scalar or dict, but you passed a "list" 

を得たか。私はdf.replaceを試してみたが、私は

TypeError: Invalid "to_replace" type: 'float' 

を取得


編集:これは重複していることが判明しました。マークされたdupeにはapplymapという解決策がないので、ここではこの点について説明します。

少し汚れ
+0

私は空のリストをスカラー値のための作業を概説ではなく、すべてのメソッド。 –

+0

@Coldspeed Strange .. 'x!= x'は素晴らしいです。 –

+0

@ Ev.Kounisいくつかのエラー警告で更新されました。これは今は愚か者ではないことが理にかなっているはずです。 –

答えて

3

、私はdf.applymapを使用して、これを解く:Ev.Kounis号@

In [671]: df.applymap(lambda x: [] if x != x else x) 
Out[671] 
    col1 col2  col3 col4  col5 user_ID 
0  [1]  [3]   []  []   []  1 
1 [2, 3]  [3] [1, 2, 3]  []   []  2 
2  [3] [3, 1]  [3, 1]  []   []  3 
0 [1, 2]  []  [1]  [3]   []  1 
1  [3]  []  [2, 3]  [3]   []  2 
2  [3]  []  [3] [3, 1]   []  3 
0  [1]  [3]   []  []   []  1 
1 [2, 3]  [3]   []  [] [1, 2, 3]  2 
2  [3] [3, 1]   []  []  [3, 1]  3 
関連する問題