Функция не меняет значение при применении к вложенному списку - PullRequest
0 голосов
/ 15 мая 2018

У меня есть функция, которая перебирает список списков.Если он находит значение, представляющее собой список, он должен создать строку из этого значения и вставить ее вместо исходного:

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 голосов
/ 15 мая 2018

Ваш код неверный. В определении вашей функции вы не вносите никаких изменений в 1-е, а в конце вы возвращаете 1-е. Вы проверяете какое-то условие, а затем изменяете значение вашего счетчика (x). Исправьте эту проблему и попробуйте снова

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...