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')