Pandas:使用多行格式将包含字符串的数据帧写入xlsx

时间:2018-02-28 21:41:08

标签: python pandas csv 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)将1个单元格打印到多个单元格中。 有没有办法在 每个单元格中格式化并将xlsx(编辑:不是csv)写入多行

编辑: 我将澄清我的问题。我的数据帧定义没有任何问题。我希望数据帧的每个单元格中的字符串中的“\ n”成为xlsx(Edited:not csv)单元格中的换行符。这是另一个例子。

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

所需的输出是A1和A2单元被填充。

编辑2: 不在csv中,而是 xlsx

2 个答案:

答案 0 :(得分:0)

您可以将.to_excelindex=Falseheader=False一起使用。

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

但您可能需要自己打开“自动换行”。

答案 1 :(得分:0)

为什么不使用 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')