使用Pandas进行数据清洗与分析是数据科学和数据分析中的一个常见任务。下面是一个示例,演示如何使用Pandas进行数据清洗和基本的分析。假设我们有一个包含顾客信息和交易记录的CSV文件,文件内容如下:

customer_id,name,age,purchase_amount,purchase_date
1,John Doe,28,120.50,2023-01-15
2,Jane Smith,34,80.20,2023-01-16
3,Emily Davis,45,150.00,2023-01-17
4,Michael Brown,23,200.30,2023-01-18
5,Jessica Williams,NaN,50.00,2023-01-19
6,David Miller,30,NaN,2023-01-20
7,Chris Wilson,40,110.70,NaN

我们将执行以下步骤:

  1. 读取数据
  2. 检查和处理缺失值
  3. 转换数据类型
  4. 数据分析

代码实现

import pandas as pd

# 1. 读取数据
data = pd.read_csv('customer_transactions.csv')

# 2. 检查缺失值
print("原始数据的缺失值情况:")
print(data.isnull().sum())

# 3. 处理缺失值
# 填充缺失的年龄值(使用中位数)
data['age'].fillna(data['age'].median(), inplace=True)
# 填充缺失的购买金额(使用平均值)
data['purchase_amount'].fillna(data['purchase_amount'].mean(), inplace=True)
# 删除缺失的购买日期
data.dropna(subset=['purchase_date'], inplace=True)

print("\n处理缺失值后的数据:")
print(data)

# 4. 转换数据类型
data['purchase_date'] = pd.to_datetime(data['purchase_date'])

# 5. 数据分析
# 计算每个年龄段的平均购买金额
age_groups = data.groupby(pd.cut(data['age'], bins=[20, 30, 40, 50, 60]))['purchase_amount'].mean()
print("\n各年龄段的平均购买金额:")
print(age_groups)

# 计算总购买金额
total_purchase_amount = data['purchase_amount'].sum()
print(f"\n总购买金额: {total_purchase_amount}")

# 按月份计算总购买金额
monthly_sales = data.set_index('purchase_date').resample('M')['purchase_amount'].sum()
print("\n按月份计算的总购买金额:")
print(monthly_sales)

# 可视化
import matplotlib.pyplot as plt

# 年龄段平均购买金额条形图
age_groups.plot(kind='bar', title='Average Purchase Amount by Age Group')
plt.xlabel('Age Group')
plt.ylabel('Average Purchase Amount')
plt.show()

# 月度销售折线图
monthly_sales.plot(kind='line', title='Total Purchase Amount by Month')
plt.xlabel('Month')
plt.ylabel('Total Purchase Amount')
plt.show()

代码解释

  1. 读取数据:使用 pd.read_csv 读取CSV文件。
  2. 检查缺失值:使用 isnull().sum() 查看每列缺失值的数量。
  3. 处理缺失值
    • 使用 fillna() 填充缺失值:年龄使用中位数填充,购买金额使用平均值填充。
    • 使用 dropna() 删除包含缺失购买日期的行。
  4. 转换数据类型:将 purchase_date 列转换为日期时间类型。
  5. 数据分析
    • 使用 groupbycut 分组计算各年龄段的平均购买金额。
    • 计算总购买金额。
    • 使用 resample 按月汇总购买金额。
  6. 可视化:使用Matplotlib绘制条形图和折线图,展示各年龄段的平均购买金额和按月计算的总购买金额。

通过以上步骤,我们完成了数据的读取、清洗、转换和基本的分析。实际应用中,可以根据具体需求扩展和深入分析。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐