Seaborn 如何处理数据以创建图表?
在 Seaborn 中,数据处理是使用 pandas 完成的,pandas 是 Python 中一个流行的数据处理库。Seaborn 基于 pandas 构建,并与其无缝集成。Pandas 提供强大的数据结构和函数来进行数据处理,例如过滤、分组、聚合和转换数据,这些都可以与 Seaborn 结合使用来创建图表。
通过结合 pandas 的数据处理能力和 Seaborn 的绘图功能,我们可以轻松地以简洁高效的方式处理和可视化数据。这使我们能够有效地探索和传达数据集中的见解。
这是一个关于如何使用 Seaborn 中的 Pandas 库进行数据处理以创建图表的逐步指南。
导入必要的库
由于我们使用的是 pandas 和 Seaborn 库,因此我们首先需要使用以下代码导入这两个库。
import seaborn as sns import pandas as pd
使用 pandas 加载或创建数据集
接下来,我们可以使用 pandas 库的 read_csv 和 DataFrame 加载或创建我们自己的数据集。在这篇文章中,我们使用 pandas 库的 DataFrame() 函数创建数据集。
示例
import seaborn as sns import pandas as pd data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'Salary': [50000, 60000, 70000]} df = pd.DataFrame(data) print(df.head())
输出
Name Age Salary 0 Alice 25 50000 1 Bob 30 60000 2 Charlie 35 70000
执行数据处理操作
一旦我们拥有 pandas DataFrame 中的数据集,现在我们可以使用各种数据处理技术来准备绘图数据。一些常见操作如下所示。
过滤
过滤用于根据特定条件选择子集的行或列。例如,如果我们想从创建的数据中过滤年龄大于 30 的行,则代码将定义如下。
示例
import seaborn as sns import pandas as pd data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'Salary': [50000, 60000, 70000]} df = pd.DataFrame(data) df.head() filtered_df = df[df['Age'] > 30] res = filtered_df.head() print(res)
输出
Name Age Salary 2 Charlie 35 70000
分组和聚合
根据一个或多个变量对数据进行分组并计算汇总统计信息。例如,如果我们想按姓名分组并计算平均工资,则将使用以下代码行。
示例
import seaborn as sns import pandas as pd data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'Salary': [50000, 60000, 70000]} df = pd.DataFrame(data) grouped_df = df.groupby('Name')['Salary'].mean() print(grouped_df.head())
输出
Name Alice 50000.0 Bob 60000.0 Charlie 70000.0 Name: Salary, dtype: float64
数据转换
数据转换意味着应用函数或转换来修改数据并根据现有列创建新列。
示例
import seaborn as sns import pandas as pd data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'Salary': [50000, 60000, 70000]} df = pd.DataFrame(data) df.head() grouped_df = df.groupby('Name')['Salary'].mean() res = grouped_df.head() print(res)
输出
Name Alice 50000.0 Bob 60000.0 Charlie 70000.0 Name: Salary, dtype: float64
数据重塑
在数据重塑中,我们使用诸如透视或熔化之类的技术将数据重构为不同的格式。
示例
import seaborn as sns import pandas as pd data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'Salary': [50000, 60000, 70000]} df = pd.DataFrame(data) pivoted_df = df.pivot(index='Name', columns='Age', values='Salary') print(pivoted_df.head())
输出
Age 25 30 35 Name Alice 50000.0 NaN NaN Bob NaN 60000.0 NaN Charlie NaN NaN 70000.0
使用 Seaborn 创建图表
数据准备完成后,我们可以使用 Seaborn 的绘图函数根据我们的数据创建可视化效果。例如,如果我们想创建按年龄组划分的平均工资条形图,则
示例
import seaborn as sns import pandas as pd import matplotlib.pyplot as plt data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'Salary': [50000, 60000, 70000]} df = pd.DataFrame(data) sns.barplot(x='Age', y='Salary', data=df) plt.show()
输出
Seaborn 提供各种绘图函数,包括散点图、折线图、条形图、直方图、箱线图等等。这些函数接受 pandas DataFrame 作为输入,并提供选项来自定义图表的显示和样式。