Из вашего сообщения об ошибке ясно, что данные в столбце «Данные» хранятся в виде строки, содержащей то, что выглядит как Python представление списка чисел с плавающей запятой. Это естественно, учитывая, что это происходит из CSV-файла, который иначе не может представлять список чисел в одном столбце.
Вы можете проверить это с помощью type(data.Data[0])
, что, как я ожидаю, скажет вам str
.
Поскольку это выглядит как Python представление списка с плавающей точкой, один хороший способ - использовать модуль Python для вычисления литерала Python, что можно сделать с помощью ast.literal_eval()
функция . Эта функция может интерпретировать Python базовые c типы (целые числа, числа с плавающей запятой, строки, списки, кортежи, дикты), и это безопасный способ анализа содержимого, поступающего из внешнего источника, такого как файл CSV.
Таким образом, вы можете преобразовать его в фактический список чисел с помощью:
import ast
data['Data'] = data.Data.transform(ast.literal_eval)
Другой подход заключается в том, чтобы заявить, что этот столбец содержит данные, закодированные в JSON, и вместо этого проанализировать его как JSON. В этом случае оказывается, что для списка с плавающей точкой представление Python и JSON эквивалентны, поэтому любой метод должен работать. (Возможно, декодирование JSON будет быстрее, JSON обычно проще, чем общий буквальный синтаксис Python.)
Чтобы декодировать его как JSON (альтернатива вышеописанному):
import json
data['Data'] = data.Data.transform(json.loads)
В этот момент (после преобразования Python или JSON) вы можете использовать такие функции, как np.mean
для результата, поскольку это просто список с плавающей точкой, а не строка:
data['Data'] = data.Data.apply(np.mean)