Как инициализировать кортеж списков столбцами существующего dataframe в python pandas

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

def func(text):
    // some code //
    return (tuple)

Кортеж имеет следующий формат:

(['1','2','3'],['abc','def','efg'])

Я пробовал делать

df[['col1','col2']] = df.col_text.apply(func)

Но выдает ошибку:

ValueError: Must have equal len keys and value when setting with an iterable

Мне нужен результат, как показано ниже:

df
       col1           col2
0   [1, 2, 3]   [abc, def, efg]

Пожалуйста, дайте мне знать, как это сделать правильно и эффективно.

«Я хочу инициализировать значения кортежа существующими столбцами DataFrame». Что это означает точно? Вы можете показать нам с желаемый результат?

jpp 11.04.2018 12:30
1
1
84
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я считаю, что вам нужно преобразовать вывод в Series, если нужны столбцы list:

df = pd.DataFrame({'col_text':range(5)})

def func(text):
    a = (['1','2','3'],['abc','def','efg'])
    return pd.Series(a)

df[['col1','col2']] = df.col_text.apply(func)
print (df)
   col_text       col1             col2
0         0  [1, 2, 3]  [abc, def, efg]
1         1  [1, 2, 3]  [abc, def, efg]
2         2  [1, 2, 3]  [abc, def, efg]
3         3  [1, 2, 3]  [abc, def, efg]
4         4  [1, 2, 3]  [abc, def, efg]

Другие вопросы по теме