Pandas DataFrame 样式应用

Python中,Pandas库提供了DataFrame这一二维数据结构,类似于二维数组或表格,拥有行和列。DataFrame广泛应用于数据科学、机器学习、科学计算等领域,以及数据挖掘、数据分析等,用于决策制定等。Pandas DataFrame以表格形式存在,可以通过应用样式使其更加互动和易于理解,例如通过Pandas DataFrame的style类来突出显示DataFrame中的特定值或元组。

PandasDataFrame Styler允许根据DataFrame中的数据条件应用各种条件格式化,并可视化DataFrame的样式。通过DataFrame.Style属性,可以返回一个pandas.Styler对象,该对象提供了多种有助于数据格式化和显示DataFrame的方法。样式的实现使用CSS,需要编写“样式函数”,这些函数将作为标量(代表单个数据单元的单个值)、DataFrame或系列,并返回与CSS“属性:值”对相对应的索引DataFrame或系列。这些函数逐渐传递给Styler类,该类在渲染前收集所有通过函数的样式。

让逐一了解可以添加到PandasDataFrame的各种样式。例如,将创建一个包含学生姓名、科目和分数的DataFrame,并对其应用各种类型的样式。首先,将设置DataFrame表格样式。使用Pandas模块中Styler类的set_table_style()方法。以下是示例代码:

import pandas as pd # 创建一个简单的DataFrame Result = { 'Name': ['Ram', 'Shyam', 'David', 'Albert', 'Riya', 'Jiya', 'Tarun'], 'Subject': ['Physics', 'Maths', 'Chemistry', 'History', 'Maths', 'English', 'Civics'], 'Marks': [80, 90, 87, 65, 92, 89, 56] } df = pd.DataFrame(Result) # 显示df df # 为表格添加边框颜色 df.style.set_table_styles([{'selector' : '','props' : [('border','5px solid green')]}])

在上述示例中,可以看到边框颜色被应用。通过查看代码,还了解到样式以CSS的形式应用,就像为任何HTML页面应用CSS一样。

接下来,将学习如何为DataFrame应用背景色。将使用Styler.set_properties方法。以下是示例代码:

import pandas as pd # 创建一个简单的DataFrame Result = { 'Name': ['Ram', 'Shyam', 'David', 'Albert', 'Riya', 'Jiya', 'Tarun'], 'Subject': ['Physics', 'Maths', 'Chemistry', 'History', 'Maths', 'English', 'Civics'], 'Marks': [80, 90, 87, 65, 92, 89, 56] } df = pd.DataFrame(Result) # 应用背景色 df.style.set_properties(**{'background-color': 'black', 'color': 'cyan', 'border-color': 'white'})

在这个示例中,背景色设置为黑色,字体颜色设置为青色,边框颜色设置为白色。代码再次以CSS格式编写。

还可以突出显示DataFrame中的特定值。例如,为特定值添加特定颜色或在其背景上添加颜色。在这个示例中,将突出显示学生的最低和最高分数。以下是示例代码:

import pandas as pd # 创建一个简单的DataFrame Result = { 'Name': ['Ram', 'Shyam', 'David', 'Albert', 'Riya', 'Jiya', 'Tarun'], 'Subject': ['Physics', 'Maths', 'Chemistry', 'History', 'Maths', 'English', 'Civics'], 'Marks': [80, 90, 87, 65, 92, 89, 56] } df = pd.DataFrame(Result) # 应用突出显示最高分 df.style.highlight_max() # 应用突出显示最低分 df.style.highlight_min()

可以看到,最高分是92分,由Riya在数学科目中获得,最低分是56分,由Tarun在公民科目中获得。max和min操作只能应用于数值列。

import pandas as pd # 创建一个简单的DataFrame Info = { 'Name': ['Ram', 'Shyam', 'David', 'Albert', 'Riya', 'Jiya', 'Tarun'], 'Age': [20, 23, 25, 20, 26, 22, 19], 'Height': [5.8, 5.3, 5.0, 5.6, 5.5, 5.7, 5.0], 'Weight': [52, 56, 60, 59, 61, 55, 50] } df = pd.DataFrame(Info) # 显示df df # 添加条形图 df.style.bar(subset=['Age', 'Height', 'Weight'], color='lawngreen') import pandas as pd import seaborn as sns # 创建一个简单的DataFrame Info = { 'Name': ['Ram', 'Shyam', 'David', 'Albert', 'Riya', 'Jiya', 'Tarun'], 'Age': [20, 23, 25, 20, 26, 22, 19], 'Height': [5.8, 5.3, 5.0, 5.6, 5.5, 5.7, 5.0], 'Weight': [52, 56, 60, 59, 61, 55, 50] } df = pd.DataFrame(Info) # 获取颜色调色板 cm = sns.light_palette("orange", as_cmap=True) # 应用到DataFrame df.style.background_gradient(cmap=cm)
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485