【问题标题】:Python: How to create multi line cells in excel when exporting a pandas dataframePython:导出熊猫数据框时如何在excel中创建多行单元格
【发布时间】:2018-11-27 06:04:15
【问题描述】:

我有以下熊猫数据框

df = pd.DataFrame([
    [['First Line', 'Second line']],
    [['First line', 'second line', 'third line']],
    [['first line']]
])

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

谢谢

【问题讨论】:

    标签: python excel pandas


    【解决方案1】:

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

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

    然后您可以像往常一样调用to_excel,然后使用openpyxl 打开文件并将单元格的.style.alignment.wrap_text 属性设置为True,就像this question 的答案所建议的那样。

    或者你可以用StyleFrame 对象包装df(完全披露:我是这个模块的作者,pip install styleframe 得到它)为你做它(@默认使用987654331@):

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

    【讨论】:

    • 看起来不错!你能告诉我如何将 pandas Dataframe 中的索引添加到 excel 中,因为 index=True 不起作用
    • @valenzio StyleFrame(df).to_excel('test.xlsx', index=True).save() 对我有用。
    • 所以我有一个 2500 x 4000 的熊猫数据框,如果我尝试导出,我的 Ram 使用量会爆炸(超过 8GB)。对于小型数据框,它工作正常。我做错了吗?
    • @valenzio 我想有些事情并没有达到应有的效率。谢谢你告诉我,我会看看的。
    • 那太棒了,我也会研究你的第一个选项,但这有点乏味,因为我从未使用过 openpyxl
    猜你喜欢
    • 2021-06-06
    • 2016-12-24
    • 2017-04-10
    • 2018-11-16
    • 2019-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-10
    相关资源
    最近更新 更多