遍历两个列表并更新其中一个的元素

时间:2019-11-07 08:10:59

标签: python pandas

遍历两个大小相等的pd.series列表。如果lst_1中的序列元素全为零,并且lst_2中相同的索引元素为None,则如何用的元素更新None的{​​{1}}元素lst_2在同一索引中?

lst_1

预期结果:

# 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...

2 个答案:

答案 0 :(得分:2)

这应该有帮助:

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]

答案 1 :(得分:1)

很小的调整就能使它起作用:

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))