Python:导出pandas数据框时如何在excel中创建多行单元格

val*_*zio 8 python excel pandas

我有以下熊猫数据框

df = pd.DataFrame([
    [['First Line', 'Second line']],
    [['First line', 'second line', 'third line']],
    [['first line']]
])
Run Code Online (Sandbox Code Playgroud)

我正在尝试将其导出到 Excel 文件中。但是我希望在每个列表元素之间输入一个换行符,类似于ALT-ENTERExcel。所以最后,excel会是这样的:

在此处输入图片说明

谢谢

Dee*_*ace 10

首先,您需要确保有一个单独的字符串'\n'作为分隔符而不是列表:

df = pd.DataFrame([
        ['First Line\nSecond line'],
        ['First line\nsecond line\nthird line'],
        ['first line']
    ])
Run Code Online (Sandbox Code Playgroud)

然后您可以to_excel像往常一样调用,然后使用 openpyxl 打开文件并将单元格的.style.alignment.wrap_text属性设置为True喜欢这个问题的答案。

或者,您可以df使用一个StyleFrame对象(完全披露:我是此模块的作者,pip install styleframe以获取它)为您执行此操作(wrap_text=True默认使用):

from styleframe import StyleFrame

df = pd.DataFrame([
        ['First Line\nSecond line'],
        ['First line\nsecond line\nthird line'],
        ['first line']
    ])

StyleFrame(df).to_excel('test.xlsx').save()
Run Code Online (Sandbox Code Playgroud)