在jupyter中打印数据框时没有水平滚动条

时间:2018-03-23 09:45:56

标签: python pandas jupyter-notebook

在jupyter中打印pandas数据框时,不会创建水平滚动,而是在适合的列之后打印不适合的列。

玩具示例:

d = {'long_column_name1': [1, 2,3,4,5,6,7,8,9], 
     'long_column_name2': [1, 2,3,4,5,6,7,8,9], 
     'long_column_name3': [1, 2,3,4,5,6,7,8,9], 
     'long_column_name4': [1, 2,3,4,5,6,7,8,9],
     'long_column_name5': [1, 2,3,4,5,6,7,8,9], 
     'long_column_name6': [1, 2,3,4,5,6,7,8,9],
     'long_column_name7': [1, 2,3,4,5,6,7,8,9], 
     'long_column_name8': [1, 2,3,4,5,6,7,8,9]}
df = pd.DataFrame(data=d)
print(df)

enter image description here

在这种情况下,只有9行和8列,它们仍然可读,但是有更多的行和列会使它真的难以阅读。

是否有办法水平打印所有列,如果需要,添加水平滚动条?

2 个答案:

答案 0 :(得分:2)

您可以尝试使用df代替print(df)。这使它可以滚动。

如果您希望将列打印为水平,则可以使用df.transpose()

答案 1 :(得分:0)

(在没有 print() 的 Jupyter 中)

更改熊猫 option 设置

喜欢:

pd.set_option('display.max_columns', 70)

用于打印单元格中的所有(字符串)内容:

pd.set_option('display.max_colwidth', None) # for pandas >= 1.x

或暂时(在 with 语句中):

with pd.option_context("display.max_rows", 8, "display.max_columns", 90):
     print(pd.get_option("display.max_rows")
     print(pd.get_option("display.max_columns"))
# back in general setting
print(pd.get_option("display.max_rows"))