7 数据探索的概念

7 数据探索的概念

数据探索是数据分析过程中的重要一步,它涉及到对原始数据的初步理解和概括。这一过程帮助我们识别数据的潜在模式、趋势和异常,为后续的分析和建模奠定基础。

什么是数据探索

数据探索(Exploratory Data Analysis,简称 EDA)是一种分析方法,旨在通过可视化和总结统计学方法来理解数据集。它的主要目标是发现数据的结构和特征,而不是直接验证假设。

关键步骤

  1. 数据集概览:使用 head()info()describe() 等方法获取数据的基本信息。
  2. 缺失值分析:识别和处理缺失值,帮助我们了解数据的完整性。
  3. 数据分布:通过直方图、箱线图等可视化工具,分析各变量的分布情况。
  4. 关系探索:利用散点图等方法,发现变量之间的潜在关系。
  5. 异常值检测:识别数据中的异常值,了解它们对整体分析的影响。

案例研究:分析某二手车数据集

假设我们有一个二手车的数据集,包含以下几个字段:品牌价格年份里程。我们的目标是通过数据探索了解二手车价格的影响因素。

步骤 1:加载数据

1
2
3
4
import pandas as pd

# 加载数据
data = pd.read_csv('used_cars.csv')

步骤 2:数据集概览

1
2
3
4
5
6
7
8
# 显示前5行数据
print(data.head())

# 显示数据的基本信息
print(data.info())

# 描述性统计
print(data.describe())

通过这些步骤,我们可以了解到数据集中包含了多少行数据、各列的类型及统计信息(如均值、标准差等)。

步骤 3:缺失值分析

1
2
3
# 检查缺失值
missing_values = data.isnull().sum()
print(missing_values)

通过检查缺失值,我们可以了解到需要对哪些字段进行清洗或填充。

步骤 4:数据分布可视化

使用 matplotlibseaborn 对数据进行可视化:

1
2
3
4
5
6
7
8
9
10
import seaborn as sns
import matplotlib.pyplot as plt

# 绘制价格分布的直方图
plt.figure(figsize=(10, 5))
sns.histplot(data['价格'], bins=30, kde=True)
plt.title('价格分布')
plt.xlabel('价格')
plt.ylabel('频率')
plt.show()

通过直方图,我们可以看到价格的分布情况,有助于我们判断是否存在偏态或峰度等特征。

步骤 5:关系探索

使用散点图查看 年份价格 之间的关系:

1
2
3
4
5
6
plt.figure(figsize=(10, 5))
sns.scatterplot(data=data, x='年份', y='价格')
plt.title('年份与价格的关系')
plt.xlabel('年份')
plt.ylabel('价格')
plt.show()

通过散点图,我们可以初步评估 年份 是否与 价格 存在相关性。

步骤 6:异常值检测

使用箱线图检测价格中的异常值:

1
2
3
4
5
plt.figure(figsize=(10, 5))
sns.boxplot(data['价格'])
plt.title('价格箱线图')
plt.ylabel('价格')
plt.show()

箱线图帮助我们识别出极端的高价或低价点,这对预测模型的训练是非常重要的。

总结

数据探索是理解数据集的关键步骤。通过对数据的可视化和统计分析,我们可以获取数据背后的故事,并为后续的分析打下坚实的基础。通过不断实践,我们能够提高数据探索的能力,从而更好地为决策提供支持。

8 数据分析常用数据可视化工具

8 数据分析常用数据可视化工具

在数据分析过程中,数据可视化是一个不可或缺的环节,它帮助我们更直观地理解数据背后的信息。以下是几个常用的数据可视化工具及其应用案例。

Matplotlib

Matplotlib 是 Python 中最常用的绘图库之一。它提供了一系列绘制图表的功能,满足基本的可视化需求。

示例:绘制折线图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import matplotlib.pyplot as plt

# 数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

# 绘制折线图
plt.plot(x, y, label='数据趋势', marker='o')
plt.title('折线图示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.legend()
plt.grid()
plt.show()

应用案例

假如我们需要展示某个产品的销售趋势,使用 Matplotlib 绘制的折线图可以明显展示各个月份的销售变化,帮助做出更科学的决策。

Seaborn

Seaborn 是建立在 Matplotlib 基础上的高级可视化工具,提供了更美观的默认设置和简化的绘图接口。

示例:绘制分布图

1
2
3
4
5
6
7
8
9
10
11
12
import seaborn as sns
import matplotlib.pyplot as plt

# 创建样本数据
data = sns.load_dataset('tips')

# 绘制分布图
sns.histplot(data['total_bill'], bins=20, kde=True)
plt.title('餐费分布图')
plt.xlabel('总账单')
plt.ylabel('出现次数')
plt.show()

应用案例

在分析顾客在餐厅的消费模式时,使用 Seaborn 绘制的分布图可以有效展示各种消费水平的频率,为制定促销活动提供数据支持。

Plotly

Plotly 是一个强大的交互式绘图库,尤其适合网页应用和展示。

示例:绘制交互式散点图

1
2
3
4
5
6
7
8
import plotly.express as px

# 创建样本数据
df = px.data.iris()

# 绘制散点图
fig = px.scatter(df, x='sepal_width', y='sepal_length', color='species', title='鸢尾花散点图')
fig.show()

应用案例

在进行机器学习过程中的数据探索阶段,使用 Plotly 绘制的交互式散点图可以让用户实时探索数据之间的关系,并根据鼠标悬停实时查看数据详细信息。

Tableau

Tableau 是一个强大的商业智能工具,适合大型数据集的可视化分析。

示例:Dashboards

Tableau 中,可以快速将多个图表组合到一个仪表盘中,用户可以根据需要进行交互操作,如过滤和钻取。

应用案例

在企业数据分析中,Tableau 常用于展示销售业绩、客户分析等。通过实时数据更新,管理人员可以迅速把握业务动态,优化决策流程。

总结

以上提到的 MatplotlibSeabornPlotlyTableau 等工具各有特点,适用于不同的数据可视化场景。选择合适的工具,可以帮助我们更加高效和直观地展示和分析数据。建议初学者多动手实践,通过实际案例来深化对这些工具的理解和应用。

9 创建有效的可视化图表

9 创建有效的可视化图表

数据可视化是数据分析中关键的一步。通过将数据转换为图表,受众能够更直观地理解数据背后的故事。在这一小节中,我们将探讨如何创建有效的可视化图表。

选择合适的图表类型

在创建图表之前,首先要考虑什么类型的图表最能有效传达数据的含义。以下是一些常见的图表类型及其适用场景:

  • 柱状图 (Bar Chart): 适合比较不同类别的数据。例如,比较不同国家的GDP。
1
2
3
4
5
6
7
8
9
10
11
import matplotlib.pyplot as plt

# 示例数据
countries = ['美国', '中国', '日本', '德国']
gdp = [21.43, 14.34, 5.08, 3.84] # 单位: 万亿美元

plt.bar(countries, gdp, color=['blue', 'red', 'green', 'orange'])
plt.title('2021年各国GDP')
plt.xlabel('国家')
plt.ylabel('GDP (万亿美元)')
plt.show()
  • 折线图 (Line Chart): 适合展示时间序列数据。例如,展示某公司五年的销售额变化。
1
2
3
4
5
6
7
8
9
years = [2018, 2019, 2020, 2021, 2022]
sales = [200, 250, 300, 350, 400]

plt.plot(years, sales, marker='o')
plt.title('公司销售额变化')
plt.xlabel('年份')
plt.ylabel('销售额 (万元)')
plt.grid(True)
plt.show()
  • 散点图 (Scatter Plot): 适合展示两个变量之间的关系。例如,考察身高与体重的关系。
1
2
3
4
5
6
7
8
heights = [150, 160, 170, 180, 190]
weights = [50, 60, 70, 80, 90]

plt.scatter(heights, weights, color='purple')
plt.title('身高与体重关系')
plt.xlabel('身高 (厘米)')
plt.ylabel('体重 (公斤)')
plt.show()

确定数据的清晰性

创建图表时,清晰性至关重要。确保图表上的信息易于理解。以下是一些提升图表清晰性的技巧。

使用合适的颜色

选择容易辨识的颜色,避免使用过多颜色。例如,要突出显示主要数据,但背景色应保持简洁。不要在图表中使用过于鲜艳的颜色组合,这样会影响观者的阅读体验。

确保标签标准化

在进行可视化时,确保所有的坐标轴和图例都有清晰的标签。例如,对于销售数据图表,明确标注“销售额 (万元)”而非模糊的“值”。

1
2
3
4
5
6
plt.bar(countries, gdp)
plt.title('2021年各国GDP')
plt.xlabel('国家')
plt.ylabel('GDP (万亿美元)')
plt.xticks(rotation=45) # 确保标签不会重叠
plt.show()

讲述数据故事

有效的可视化图表不仅展示数据,还可以讲述故事。确保选择一个焦点并引导观众关注最重要的信息。

实际案例

假设我们有一家在线零售商,并收集了购物车中不同商品类型的销售数据。我们希望能通过图表向团队展示哪些商品类型最畅销。

1
2
3
4
5
6
7
product_types = ['电子产品', '服装', '家庭用品', '食品']
sales = [1500, 2200, 800, 1300]

plt.pie(sales, labels=product_types, autopct='%1.1f%%', startangle=140)
plt.title('2023年商品销售比例')
plt.axis('equal') # 使饼图为圆形
plt.show()

这张饼图不仅清晰地展示了不同商品的销售比例,还能让团队迅速了解哪些商品类型是最畅销的。

总结

创建有效的可视化图表需要选择合适的图表类型、确保数据清晰以及讲述数据的故事。通过实践和观察他人的优秀作品,我们可以逐步提高我们的数据可视化能力。