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

标签 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])

但不工作...

最佳答案

你需要提高你的理解能力:)

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 的元素。

关于python - 从 Python/Pandas Dataframe 的列表列中的列表中删除空格或 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39169905/

相关文章:

python - Pandas :插入缺失的行并在数据框中绘制多个系列

python-3.x - 如何将最高的 matplotlib 散点图 c 值发送到前面?

c - 在 C 中识别和分配 +NaN 和 -NaN

python - 压缩收藏

python - 在 tensorflow 概率中指定 DirichletMultinomial

python - 如果值匹配,则自动比较 2 个 csv 文件的值,将第二个 csv 读入 DataFrame

Java 数学 - 测试 NaN

python - 来自带有 NaN 的 Pandas 数据框的 seaborn 热图

coding-style - 在 Python 中创建常量的约定

python - 读取其他.py的程序