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 个列表:names和values。每个值都带有一个名称,即与Pat值相对应1,Sam与值相对应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)
但是,上面没有考虑嵌套列表。
就这么简单?
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)