如果 nan 在列表列表中,则删除列表

2024-01-05

我有一个来自 Pandas 数据框架的列表列表,其中包含 nan 值。我想删除所有包含任何 nan 值的列表。然后绘制剩余的值。

Example

test = [[1,2],[1,nan],[3,4]]

最终结果

test = [[1,2],[3,4]]

如果可能的话,我还想使用任何绘图方法根据最终结果制作图表。如果您能提供有关此方式的任何帮助,我们将不胜感激。

对于这个问题引起的混乱,我深表歉意,列表列表是从 pandas 数据框中获取的,因此为什么 nan 出现在示例中。我想保持数据框不变,并希望使用列表列表


从列表中删除值

Using filter

nan不是正确的 Python 语法,仅在Pandas图书馆。所以我将用这个值替换None.

我们可以使用filter函数删除列表中包含的任何值nan value.

test = list(filter(lambda x: None not in x, test))

使用列表理解

编辑:应该是x代替test。谢谢@fountainhead

test = [x 表示测试中的 x,如果 None 不在测试中]

test = [x for x in test if None not in x]

两者都会返回一个列表,其中的值不包含None in them

Plotting

我们可以使用一个名为的库matplotlib绘制图表。例如,要创建散点图:

import matplotlib.pyplot as plt
plt.scatter(x, y)

其中 plt.scatter 分别接受行和列的 x 值和 y 值。完整代码如下:

import matplotlib.pyplot as plt

test = [[1,2],[1,None],[3,4]]
test = list(filter(lambda x: None not in x, test))

x = [x for x,y in test]
y = [y for x,y in test]

# Assume all first elements are x values second elements are y values
plt.scatter(x, y)
plt.show()

示例图片如下

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果 nan 在列表列表中,则删除列表 的相关文章

随机推荐