Pandas:将包含字符串的数据帧写入多行格式的 xlsx
Pandas: Write dataframe containing strings to xlsx with multiline format
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)格式化并写入 multilines within each 单元格?
编辑:
我会澄清我的问题。我的数据框定义没有问题。我希望数据帧每个单元格中字符串中的“\n”成为 xlsx(已编辑:不是 csv)单元格中的换行符。这是另一个例子。
df=pd.DataFrame(['abc\n123\n232','1\n2\n3\n4\n5\n6'])
df.to_csv('text.csv')
所需的输出是 A1 和 A2 单元格 仅 被填充。
编辑 2:
不是 csv,而是 xlsx.
您可以将 .to_excel
与 index=False
和 header=False
一起使用。
df.to_excel('test.xlsx', index=False, header=False)
但您可能需要自行开启'Wrap Text'。
为什么不使用 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')
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)格式化并写入 multilines within each 单元格?
编辑: 我会澄清我的问题。我的数据框定义没有问题。我希望数据帧每个单元格中字符串中的“\n”成为 xlsx(已编辑:不是 csv)单元格中的换行符。这是另一个例子。
df=pd.DataFrame(['abc\n123\n232','1\n2\n3\n4\n5\n6'])
df.to_csv('text.csv')
所需的输出是 A1 和 A2 单元格 仅 被填充。
编辑 2: 不是 csv,而是 xlsx.
您可以将 .to_excel
与 index=False
和 header=False
一起使用。
df.to_excel('test.xlsx', index=False, header=False)
但您可能需要自行开启'Wrap Text'。
为什么不使用 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')