EDA
EDA(Exploratory Data Analysis,探索性数据分析)是一种数据分析方法,它强调在数据预处理和建模之前对数据的初步理解和探索。EDA 的目的是揭示数据中的模式、趋势、异常值和关联等,以帮助分析师建立对数据的直观理解,并为后续的数据处理和建模提供指导。
EDA 通常包括以下几个步骤:
1. 数据导入:将数据加载到分析环境中。
2. 数据清洗:处理缺失值、异常值、重复值等。
3. 数据可视化:使用图表、图像等方式展示数据。
4. 统计描述:计算数据的统计量,如均值、中位数、方差等。
5. 数据关系探索:发现变量之间的关系和趋势。
下面是一个使用 Python 和 pandas、matplotlib 进行 EDA 的简单示例:
首先,假设我们有一个包含用户购买商品信息的 CSV 文件 purchases.csv,其中包含以下列:user_id, product_id, purchase_date, price。
python复制代码
|
import pandas as pd |
|
import matplotlib.pyplot as plt |
|
|
|
# 1. 数据导入 |
|
data = pd.read_csv('purchases.csv') |
|
|
|
# 2. 数据清洗(这里仅作演示,实际操作可能更复杂) |
|
# 处理缺失值 |
|
data = data.dropna() |
|
# 处理重复值 |
|
data = data.drop_duplicates() |
|
|
|
# 3. 数据可视化 |
|
# 查看数据的前几行 |
|
print(data.head()) |
|
|
|
# 绘制购买日期的直方图 |
|
plt.figure(figsize=(10, 6)) |
|
data['purchase_date'].hist(bins=30) |
|
plt.title('Purchase Date Distribution') |
|
plt.xlabel('Purchase Date') |
|
plt.ylabel('Frequency') |
|
plt.show() |
|
|
|
# 绘制价格的箱线图 |
|
plt.figure(figsize=(10, 6)) |
|
plt.boxplot(data['price']) |
|
plt.title('Price Distribution') |
|
plt.ylabel('Price') |
|
plt.show() |
|
|
|
# 4. 统计描述 |
|
# 计算价格的基本统计量 |
|
price_stats = data['price'].describe() |
|
print(price_stats) |
|
|
|
# 5. 数据关系探索(例如:价格和购买日期的关系) |
|
# 按购买日期分组计算平均价格 |
|
avg_price_per_date = data.groupby('purchase_date')['price'].mean() |
|
|
|
# 绘制平均价格随时间变化的折线图 |
|
plt.figure(figsize=(10, 6)) |
|
avg_price_per_date.plot() |
|
plt.title('Average Price Over Time') |
|
plt.xlabel('Purchase Date') |
|
plt.ylabel('Average Price') |
|
plt.show() |
在这个示例中,我们首先导入了数据,并进行了简单的数据清洗。然后,我们使用 matplotlib 库绘制了购买日期的直方图和价格的箱线图来直观地查看数据的分布。接着,我们计算了价格的基本统计量来了解数据的集中程度、分散程度等。最后,我们按购买日期分组计算了平均价格,并绘制了平均价格随时间变化的折线图来探索价格和购买日期之间的关系。