You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Shell中实现Pandas DataFrame多行单元格输出?

如何在Shell中让Pandas DataFrame单元格内容多行输出

当然可以实现!我明白你想要让带换行符的单元格内容在Shell里自动折行显示,而不是把\n当成普通字符输出。这里有两个实用的方法,能帮你达到预期效果:

方法1:通过Pandas显示选项开启自动换行

首先,你可以调整Pandas的全局显示设置,让它解析单元格里的换行符,并且不限制列宽避免内容截断:

import pandas as pd

data = [ {'id': 1, 't': 'very long text\ntext line 2\ntext line 3'}, {'id': 2, 't': 'short text'} ]
df = pd.DataFrame(data)
df.set_index('id', inplace=True)

# 关键设置:取消列宽限制,允许内容换行
pd.set_option('display.max_colwidth', None)
# 禁止自动换行整个DataFrame(避免列被挤到下一行)
pd.set_option('display.expand_frame_repr', False)

print(df)

这个方法会让单元格里的\n直接转换成换行,输出效果如下:

t
id         
1   very long text
text line 2
text line 3
2   short text

方法2:预处理文本添加缩进,实现对齐的多行输出

如果想要换行后的内容和单元格第一行保持缩进对齐(就像你示例里的期望效果),可以先把文本里的\n替换成\n (四个空格),再配合显示设置:

import pandas as pd

data = [ {'id': 1, 't': 'very long text\ntext line 2\ntext line 3'}, {'id': 2, 't': 'short text'} ]
df = pd.DataFrame(data)
df.set_index('id', inplace=True)

# 替换换行符为「换行+缩进」,让多行内容对齐
df['t'] = df['t'].str.replace('\n', '\n    ')

# 取消列宽限制,确保内容完整显示
pd.set_option('display.max_colwidth', None)

print(df)

这样输出就完全符合你的预期了:

t
id         
1   very long text
        text line 2
        text line 3
2   short text

如果想要让索引(id列)左对齐,可以再加一行设置:

pd.set_option('display.index.align', 'left')

调整后索引会和列内容左对齐,更贴近你给出的示例格式~

内容的提问来源于stack exchange,提问作者disserman

火山引擎 最新活动