У меня есть данные в пандах, которые я хотел бы записать в файл CSV. Я делаю это с помощью:
df.to_csv('out.csv')
И получаю ошибку:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u03b1' in position 20: ordinal not in range(128)
Есть ли способ обойти это легко (то есть у меня есть символы Юникода в моем фрейме данных)? И есть ли способ записи в файл с разделителями табуляции вместо CSV, используя, например, метод «to-tab» (который, я думаю, не существует)?
index=False
чтобы уронить индекс.При сохранении
DataFrame
объекта в файл CSV , используяto_csv
метод, вы , вероятно , не будет необходимости хранить предыдущие показатели каждой строки изDataFrame
объекта.Вы можете избежать этого, передав
False
булево значениеindex
параметру.Что-то вроде:
Так что, если ваш объект DataFrame выглядит примерно так:
CSV-файл будет хранить:
вместо (случай, когда было передано значение по умолчанию
True
)источник
df.rename_axis('index_name')
? это не изменяет сам файлЧтобы записать pandas DataFrame в файл CSV, вам потребуется
DataFrame.to_csv
. Эта функция предлагает множество аргументов с разумными значениями по умолчанию, которые вам чаще всего придется переопределять в соответствии с вашим конкретным вариантом использования. Например, вы можете использовать другой разделитель, изменить формат даты и времени или удалить индекс при записи.to_csv
есть аргументы, которые вы можете передать, чтобы удовлетворить эти требования.Вот таблица, в которой перечислены некоторые распространенные сценарии записи в файлы CSV и соответствующие аргументы, которые вы можете использовать для них.
источник
Что-то еще, что вы можете попробовать, если у вас есть проблемы с кодировкой 'utf-8' и вы хотите переходить по ячейкам, вы можете попробовать следующее.
Python 2
(Где "df" - это ваш объект DataFrame.)
Тогда попробуйте:
Вы можете проверить кодировку столбцов:
Предупреждение: error = 'ignore' просто пропустит символ, например
Python 3
источник
Иногда вы сталкиваетесь с этими проблемами, если указать также кодировку UTF-8. Я рекомендую указывать кодировку при чтении файла и ту же кодировку при записи в файл. Это может решить вашу проблему.
источник
Пример экспорта в файл с полным путем в Windows, и если ваш файл имеет заголовки :
Пример, если вы хотите сохранить в папке в том же каталоге, где находится ваш скрипт, с кодировкой utf-8 и табуляцией в качестве разделителя :
источник
это может быть не ответом для этого случая, но поскольку у меня было одно и то же сообщение об ошибке, с которым
.to_csv
я пытался,.toCSV('name.csv')
и сообщение об ошибке было другим ("SparseDataFrame' object has no attribute 'toCSV'
). Таким образом, проблема была решена путем преобразования фрейма данных в плотный фрейм данныхисточник
.toCSV
и нет.to_csv
. Вы забыли подчеркивание