在 jupyter 笔记本中保留 pandas 数据框显示的额外空白

Ben*_*018 3 pandas jupyter-notebook

在 jupyter Notebook 中,数据框中多余的空格被删除。但有时这不是首选,例如

df=pd.DataFrame({'A':['a   b','c'],'B':[1,2]})
df
Run Code Online (Sandbox Code Playgroud)

我得到的结果:

|   | A   | B |
|---|-----|---|
| 0 | a b | 1 |
| 1 | c   | 2 |
Run Code Online (Sandbox Code Playgroud)

但我想要:

|   | A     | B |
|---|-------|---|
| 0 | a   b | 1 |
| 1 | c     | 2 |
Run Code Online (Sandbox Code Playgroud)

是否可以?谢谢

Cod*_*ent 7

它实际上是 HTML:pandas 尽职尽责地将所有空格写入 HTML 标记(Jupyter Notebook 使用的前端格式)。默认情况下,HTML 将多个相邻的空格合并为一个。使用该style对象来更改此设置:

df.style.set_properties(**{'white-space': 'pre'})
Run Code Online (Sandbox Code Playgroud)

不幸的是,您还无法更改 DataFrame 的默认渲染样式。您可以编写一个函数来换行该行:

def print_df(df):
    return df.style.set_properties(**{'white-space': 'pre'})

print_df(df)
Run Code Online (Sandbox Code Playgroud)