我的数据框中的某些列的标题很长,并且我希望能够自动换行文本。我知道这个功能内置在 pandas 中,就像我一样:
pd.DataFrame(np.random.randn(2, 10),
columns=['Very Long Column Title ' + str(i) for i in range(10)])
具有包装列名称的 DataFrame https://i.stack.imgur.com/cpM6n.png
但如果我的列数较少,标题将不会换行:
pd.DataFrame(np.random.randn(10, 2),
columns=['Very Long Column Title ' + str(i) for i in range(2)])
DataFrame 不包装列名称 https://i.stack.imgur.com/00FZ5.png
我还尝试手动插入换行符:
import pandas as pd
pd.DataFrame(np.random.randn(10, 2),
columns=['Very Long \n Column Title ' + str(i) for i in range(2)])
但这给出了与上面相同的输出。
我在这个主题上找到了类似的答案:
-
我可以在 pandas 中设置可变的列宽吗? https://stackoverflow.com/questions/39680147/can-i-set-variable-column-widths-in-pandas
将截断列宽,但不会影响标题,也不会换行文本
-
在 Pandas DataFrame 中的字符串内漂亮地打印换行符 https://stackoverflow.com/questions/34322448/pretty-printing-newlines-inside-a-string-in-a-pandas-dataframe
这再次涉及到列内容,但不涉及标题
我正在 Jupyter 笔记本中工作,但如果可能的话,我更喜欢基于 pandas 的解决方案。
这是一个不涉及更改 IPython 属性的答案:
df = pd.DataFrame(np.random.randn(10, 2),
columns=['Very Long Column Title ' + str(i) for i in range(2)])
df.style.set_table_styles([dict(selector="th",props=[('max-width', '50px')])])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)