Pandas: записывает фрейм данных, содержащий строки, в xlsx с многострочным форматом

df=pd.DataFrame(['abc\n123\n232','1\n2\n3\n4\n5\n6'])
df.to_csv('text.csv')

Я хотел бы иметь в одной ячейке в xlsx (отредактировано: не CSV):

abc
123
232

Желаемый результат - заполнение только ячейки A1.

Фрейм данных имеет только 1 ячейку. Но приведенный выше код приведет к тому, что xlsx (отредактировано: не csv) напечатает одну ячейку на несколько ячеек. Есть ли способ отформатировать и записать xlsx (отредактировано: не CSV) в несколько строк в каждой ячейке?

Изменить: я проясню мою проблему. Там нет ничего плохого в моем определении dataframe. Мне бы хотелось, чтобы "\n" в строках в каждой ячейке информационного кадра стал разрывом строки в ячейке xlsx (отредактировано: не csv). это еще один пример.

df=pd.DataFrame(['abc\n123\n232','1\n2\n3\n4\n5\n6'])
df.to_csv('text.csv')

Желаемый результат - заполнение ячеек А1 и А2.

Изменить 2: не в CSV, но XLSX.

2 ответа

Решение

Ты можешь использовать .to_excel с index=False а также header=False,

df.to_excel('test.xlsx', index=False, header=False)

Но вам может понадобиться включить "Обтекание текстом" самостоятельно.

почему бы не использовать openpyxl для этого он будет работать

      from openpyxl import Workbook

workbook = Workbook()
worksheet = workbook.worksheets[0]
worksheet.title = "Sheet1"
worksheet.cell('A1').style.alignment.wrap_text = True
worksheet.cell('A1').value = "abc\n123\n232"
worksheet.cell('B1').value = "1\n2\n3\n4\n5\n6"
workbook.save('test.xlsx')
Другие вопросы по тегам