在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)