Ошибка возникает по адресу:
test_data['translated_descriptions'].copy = translated_description
Что на самом деле содержит:
test_data['translated_descriptions'].copy
- это ссылка на copy
метод еще несуществующий столбец. ... = translated_description
- вы пытаетесь заменить список этой ссылкой.
Если вы хотите создать новый столбец, напишите просто:
test_data['translated_descriptions'] = translated_description
Редактировать
Если вы хотите избавиться от ошибки, упомянутой в комментарии, тогда:
- Начните с копирования кадра данных:
df2 = test_data.copy()
(invoke * 1026)* метод целого DataFrame, а не его столбца). - Затем используйте
df2
- новый DataFrame.
И пару советов, какулучшить вашу программу:
Определить translator
вне функции перевода:
translator = Translator(from_lang = from_lang, to_lang = to_lang)
Затем определить функцию перевода как:
def test_translation(contents):
return translator.translate(contents)
И затем новый столбецможет быть создан просто:
test_data['translated_descriptions'] = \
test_data.ticket_contents.apply(test_translation)
без какого-либо промежуточного списка.
Смотрите также следующий фрагмент вашей программы:
test_data = pandas.read_csv(test_data, names = colnames,
encoding = 'utf-8')
test_data = pandas.DataFrame(test_data)
NПримечание:
- Первая инструкция читает DataFrame из CSV-файла и сохраняет его в переменной
test_data
. - Затем вы создаете следующий DataFrame (фактически представление * 1058).* существующий DataFrame) и присвоить его той же переменной.
В результате:
- DataFrame
previous
где-то существует, но теперьнедоступен. - У вас есть доступ только к представлению, созданному со второй инструкцией.
- И вот почему вы получаете упомянутую ошибку.
Вывод: отбросьте вторую инструкцию.Достаточно иметь один DataFrame.