从Python / Pandas Dataframe中列表中的列表中删除空格或NaN

时间:2016-08-26 15:35:57

标签: python pandas nan

我有一个Pandas数据帧df,如下所示:

   A  B
1  1  [a,b,d,d]
2  6  [,1,4,d,g]
3  a  [w,1,NaN,x,y,2]

我需要删除第2行中的空白和第3行中的NaN以获取:

   A  B
1  1  [a,b,d,d]
2  6  [1,4,d,g]
3  a  [w,1,x,y,2]

我认为应用某种lambda列表理解?

df.B=df.B.apply(lambda x: x if x not in ['',np.NaN])

但没有工作......

1 个答案:

答案 0 :(得分:3)

你需要学习你的理解能力:)

import numpy as np

df = pd.DataFrame([
        [1, ['a','b','d','d']],
        [6, ['',1,4,'d','g']],
        ['a', ['w',1,np.nan,'x','y',2]]
    ], columns=['A', 'B'])

df.B.apply(lambda l: [x for x in l if x not in ['', np.nan]])

其中l是当前列表,xl的元素。