python - 从 Pandas 数据框中的列表中删除所有 nan 值

标签 python python-2.7 pandas dataframe

如果有任何元素与 nan 一起存在,那么我想保留元素并只想删除 nan

示例 1 ->

index      values
0     [nan,'a',nan,nan]

输出应该是这样的

index   values

0         [a]

示例 2->

index      values
0     [nan,'a',b,c]

1     [nan,nan,nan]

输出应该是这样的

index   values

0      [a,b,c]

1        [] 

最佳答案

这是使用 df.apply 的一种方法。

import pandas as pd
import numpy as np

df = pd.DataFrame({"a": [[np.nan, np.nan, np.nan, "a", np.nan], [np.nan, np.nan], ["a", "b"]]})
df["a"] = df["a"].apply(lambda x: [i for i in x if str(i) != "nan"])
print(df)

输出:

        a
0     [a]
1      []
2  [a, b]

关于python - 从 Pandas 数据框中的列表中删除所有 nan 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51262101/

相关文章:

python - Docker - 无法运行 Jupyter 笔记本 - KeyError : 'allow_remote_access'

python - 如何在迭代器处返回 "peek",同时保留项目?

django - 在 pyCharm 中配置没有迁移的 django 测试

python - 如何对列表中由其他列分组的列求和?

python - 使用 Seaborn FacetGrid 从数据框中绘制错误条

python - 是否真的没有用于 python/jython 等的基于事件的所见即所得 Gui 构建器

python - 如何使用 Selenium XPath 检查页面上是否存在元素?

python - 使用 Peewee 选择一列

python - 使用正则表达式从 URL 中提取子字符串

python - 如何使用重复索引对数据框列中的值进行求和