查找嵌套列表中 nan 元素的索引并将其删除

Adr*_*ian 6 python list nested-lists

names=[['Pat','Sam', np.nan, 'Tom', ''], ["Angela", np.nan, "James", ".", "Jackie"]]
values=[[1, 9, 1, 2, 1], [1, 3, 1, 5, 10]]
Run Code Online (Sandbox Code Playgroud)

我有 2 个列表:namesvalues。每个值都带有一个名称,即与Pat值相对应1Sam与值相对应9

我想删除nanfromnames和相应的值values

也就是说,我想要一个new_names如下所示的列表:

[['Pat','Sam', 'Tom', ''], ["Angela", "James", ".", "Jackie"]]
Run Code Online (Sandbox Code Playgroud)

和一个new_values如下所示的列表:

[[1, 9, 2, 1], [1, 1, 5, 10]]
Run Code Online (Sandbox Code Playgroud)

我的尝试是首先找到这些nan条目的索引:

all_nan_idx = []
for idx, name in enumerate(names):
  if pd.isnull(name):
  all_nan_idx.append(idx)
Run Code Online (Sandbox Code Playgroud)

但是,上面没有考虑嵌套列表。

Jul*_*ien 2

就这么简单?

import numpy as np
import pandas as pd

names=[['Pat','Sam', np.nan, 'Tom', ''], ["Angela", np.nan, "James", ".", "Jackie"]]
values=[[1, 9, 1, 2, 1], [1, 3, 1, 5, 10]]

new_names = []
new_values = []
for names_, values_ in zip(names, values):
    n = []
    v = []
    for name, value in zip(names_, values_):
        if not pd.isnull(name):
            n.append(name)
            v.append(value)
    new_names.append(n)
    new_values.append(v)
Run Code Online (Sandbox Code Playgroud)