从python中的列表列表中删除值/nan/空字符串(“”)

2024-04-26 05:09:02 发布

您现在位置:Python中文网/ 问答频道 /正文

给出:

a = [["a","",""],
 ["b","",""],
 ["c","d",""]]

b = [["a", nan, nan],
["b", nan, nan],
["c","d", nan]]

我想删除nan或空字符串的值。你知道吗

这是我当前的代码:

while("" in a):
    a.remove("")

以及

b = [x for x in b if str(x) != nan]

但都不行,我该怎么办?你知道吗


Tags: 字符串代码inforifnanremovewhile
3条回答

你知道吗列表.删除(“”)删除列表中的第一个“”元素。a不包含“”。您应该为a或b中的每个子列表执行此操作

for l in a:
    while "" in l:
        l.remove("")    

x for x in b只查看列表级别1。你知道吗

试试这个:

b = [[n for n in b] for x in b if n not in ('nan', "")]

这是正确的版本。你知道吗

from math import isnan  # numpy.isnan can also be used instead

# If the list contains only strings, `if e != ""` can be simplied to `if e`
a = [[e for e in l if e != ""] for l in a]

# Use isnan function to check for nan values
b = [[e for e in l if not isnan(e)] for l in b]

相关问题 更多 >