Я пытаюсь создать функцию, которая разбивает текст в столбце информационного кадра и помещает каждую половину разделения в новый новый столбец. Я хочу разделить текст сразу после указанной c фразы (определяемой как «search_text» в функции «create_var»), а затем обрезать этот текст до указанного количества символов (определяемых как left_trim_number в функции). Моя функция работала в некоторых случаях, но не работает в других.
Вот базовая c структура моего фрейма данных, где «lst» - мой список текстовых элементов, а «cols» - два столбца. исходного кадра данных:
import pandas as pd
cols = ['page', 'text_i']
df1 = pd.DataFrame(lst, columns=cols)
Вот моя функция:
def create_var(varname, search_text, left_trim_number):
df1[['a',varname]] = df1['text_i'].str.split(search_text, expand=True)
df1[varname] = df1[varname].str[: left_trim_number ]
create_var('var1','I am looking for the text that follows this ',3)
В тех случаях, когда это не работает, я получаю эту ошибку (которая, я полагаю, связана с pandas ):
"Ошибка значения: длина столбцов должна быть такой же, как у ключа"
Есть ли лучший способ сделать это?