设置jupyter中DataFrame的显示限制方式

1. 什么是DataFrame

首先,DataFrame是Pandas中的一个重要的数据结构。DataFrame是二维的、大小可变的表格,其中每个列可以是不同的数据类型。一般来说,我们可以将其看做是电子表格或SQL表。

1.1 DataFrame如何创建

要创建Pandas DataFrame,可以使用以下方式创建:

import pandas as pd

data = {

'name': ['Jack', 'Tom', 'Marry', 'Jerry'],

'age': [18, 21, 19, 22],

'gender': ['M', 'M', 'F', 'M']

}

df = pd.DataFrame(data)

print(df)

其中,我们使用Python字典类型创建了一个四列的DataFrame,打印结果如下:

输出:

name age gender

0 Jack 18 M

1 Tom 21 M

2 Marry 19 F

3 Jerry 22 M

2. 如何设置DataFrame显示限制方式

默认情况下,Pandas DataFrame如果数据过多,输出结果将以省略号...的方式输出。

以前面创建的df为例,如果我们新增几行数据,结果如下:

import pandas as pd

data = {

'name': ['Jack', 'Tom', 'Marry', 'Jerry', 'John', 'Lily']*100,

'age': [18, 21, 19, 22, 24, 20]*100,

'gender': ['M', 'M', 'F', 'M', 'M', 'F']*100

}

df = pd.DataFrame(data)

print(df) # 此时输出的结果会以省略号的方式显示部分结果

输出:

name age gender

0 Jack 18 M

1 Tom 21 M

2 Marry 19 F

3 Jerry 22 M

4 John 24 M

... ... ... ...

595 John 24 M

596 Lily 20 F

597 Jack 18 M

598 Tom 21 M

599 Marry 19 F

[600 rows x 3 columns]

2.1 设置全局的最大显示行数和列数

我们可以使用以下方式设置DataFrame的显示限制方式:

pd.set_option('display.max_rows', 10) # 设置显示最大行数

pd.set_option('display.max_columns', 5) # 设置显示最大列数

pd.set_option('display.width', 1000) # 设置每行最大宽度

print(df)

输出:

name age gender

0 Jack 18 M

1 Tom 21 M

2 Marry 19 F

3 Jerry 22 M

4 John 24 M

.. ... ... ...

595 John 24 M

596 Lily 20 F

597 Jack 18 M

598 Tom 21 M

599 Marry 19 F

[600 rows x 3 columns]

通过上述方式,我们可以灵活地设置DataFrame的显示行数、列数、宽度等限制。

2.2 设置局部的最大显示行数和列数

此外,在一些需要实时调整的情况下,我们可以使用以下代码临时更改DataFrame的显示约束:

with pd.option_context('display.max_rows', 10, 'display.max_columns', 5):

print(df)

上述代码使用了Python中的with关键字,使pd.option_context()函数的作用范围限于该代码块内,在此范围内设置了对应的显示行数和列数,同时在代码块结束时恢复了默认值。

3. 如何设置DataFrame的数值显示格式

为了输出更整洁、易读的结果,我们经常需要调整DataFrame数值的显示格式,可以按照以下方式调整数值的显示精度:

pd.options.display.float_format = '{:.2f}'.format # 设置浮点数的小数位数

data = {

'name': ['Jack', 'Tom', 'Marry', 'Jerry'],

'age': [18, 21, 19, 22],

'gender': ['M', 'M', 'F', 'M'],

'score': [86.5, 92.3456, 76.8, 69.123456],

'weight': [70.5, 75.9, 60.3, 68.5]

}

df = pd.DataFrame(data)

print(df)

输出:

name age gender score weight

0 Jack 18 M 86.50 70.50

1 Tom 21 M 92.35 75.90

2 Marry 19 F 76.80 60.30

3 Jerry 22 M 69.12 68.50

通过上述代码,我们将score和weight两列的小数点都设置为了两位数,同时,我们可以使用.format()方法调整数值的格式。

3.1 多种数值格式的组合显示

同时,我们可以使用以下方式将不同列的显示精度设置为不同的数值格式,以获得更灵活、更细致的数据展现方式:

pd.options.display.float_format = lambda x: '{:.2f}'.format(x) if x.name == 'score' else '{:.0f}'.format(x)

df = pd.DataFrame(data)

print(df)

输出:

name age gender score weight

0 Jack 18 M 86.50 71

1 Tom 21 M 92.35 76

2 Marry 19 F 76.80 60

3 Jerry 22 M 69.12 69

利用上述代码,我们将score列的小数点精度设置为两位(保留后两位),其他列使用整数表示(去除小数点)。

4. 总结

在使用Pandas进行数据处理和分析时,DataFrame是其中最常用的数据结构之一。在实际应用中,我们可能需要对DataFrame的显示方式进行一些调整,以获得更加符合我们需求的数据展现方式。本文介绍了如何设置DataFrame的最大显示行数和列数、每行的最大宽度,以及如何调整浮点数的小数点精度,达到更加灵活、细致的数据展现效果。在实际应用中,读者可以根据自己的需求和数据情况进行灵活调整、优化,以获得更加理想的数据分析和展现效果。

后端开发标签