我有一个 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])
但不工作...
最佳答案
你需要提高你的理解能力:)
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
是当前列表,x
是 l
的元素。
关于python - 从 Python/Pandas Dataframe 的列表列中的列表中删除空格或 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39169905/