应用于嵌套列表时,函数不会更改值

时间:2018-05-15 14:59:06

标签: python-3.x pandas

我有一个迭代列表列表的函数。如果它找到了值,这是一个列表本身,它应该从这个值创建一个字符串并插入它而不是原始的字符串:

def lst_to_str(lst):
for x in lst:
    for y in x:
        i = 0
        if type(y) == list:
            x[i] = ",".join(y)
        i +=1
return lst

问题是,当我将此函数应用于pd.DataFrame列

df['pdns'] = df['pdns'].apply(lambda x: lst_to_str(x))

它返回原始的嵌套列表:

[['a', 'b', 'c', 'd'], ['a1', 'b1', 'd1', 'c1'],['a2', 'b2', 'c2', ['d2_1', 'd2_2']]]

而不是:

[['a', 'b', 'c', 'd'], ['a1', 'b1', 'd1', 'c1'],['a2', 'b2', 'c2', 'd2_1, d2_2']]

1 个答案:

答案 0 :(得分:0)

你的代码错了。在你的函数定义中,你没有对1st进行任何更改,最后你返回1st。您正在检查某些条件,然后更改计数器的值(x)。纠正此问题,然后重试