循环浏览两个列表并更新其中一个列表的元素



遍历两个大小相等的pd系列列表。如果lst_1中的一个系列元素全部为零,并且lst_2中的同一索引元素是None,如何用同一索引中的lst_1元素更新lst_2None元素?

# original lst_1 and lst_2
lst_1 = [pd.Series([1,0,1,0]), pd.Series([0,0,0,0]), pd.Series([2,0,2,0])]
lst_2 = [pd.Series([1,0,1,1]), None, pd.Series([2,2,0,0])]
# My try
for i, j in zip(lst_1, lst_2):
if (i.all() == 0) and (j is None):
j = pd.Series([0]*len(i))
# have got this far...

预期结果:

lst_1 = [pd.Series([1,0,1,0]), pd.Series([0,0,0,0]), pd.Series([2,0,2,0])]
lst_2 = [pd.Series([1,0,1,1]), pd.Series([0,0,0,0]), pd.Series([2,2,0,0])]

这应该会有所帮助:

for i in range(len(lst_1)):
if (lst_1[i].all() == 0) and lst_2[i] is None:
lst_2[i] = lst_1[i]

一个非常小的调整就会使其工作:

lst_1 = [pd.Series([1,0,1,0]), pd.Series([0,0,0,0]), pd.Series([2,0,2,0])]
lst_2 = [pd.Series([1,0,1,1]), None, pd.Series([2,2,0,0])]
for index, i, j in enumerate(zip(lst_1, lst_2)):
if (i.all() == 0) and (j is None):
lst_2[index] = pd.Series([0]*len(i))

最新更新