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的最大显示行数和列数、每行的最大宽度,以及如何调整浮点数的小数点精度,达到更加灵活、细致的数据展现效果。在实际应用中,读者可以根据自己的需求和数据情况进行灵活调整、优化,以获得更加理想的数据分析和展现效果。