用实战玩转pandas数据分析(一)——用户消费行为分析(python)
数据分析已经成为当下互联网行业排名前列且广泛应用的技能,而Python中的pandas库是其中最常用的数据处理工具之一。
在本篇文章中,我们将基于用户消费行为数据,介绍pandas库在数据分析中的应用,包括数据清洗、数据可视化、聚合分析等多个方面,力求让读者在实战中掌握pandas数据分析的技能。
准备数据
在开始数据分析前,首先需要一份可供分析的数据。本次数据我们选择淘宝商城的用户消费行为数据,包含四个字段:
- 用户ID(user_id)
- 购买日期(order_date)
- 购买金额(order_money)
- 购买商品数(order_products)
我们需要将数据从csv文件导入,通过pandas
库中的read_csv
方法导入数据并展示前几行:
import pandas as pd
df = pd.read_csv('consumer_behavior.csv', encoding='utf-8')
print(df.head())
输出结果:
user_id order_date order_money order_products
0 10928323 2017/9/27 223.60 2
1 18491264 2016/5/11 39.90 1
2 7155830 2017/4/26 223.00 1
3 1611407 2017/1/10 30.00 1
4 9032154 2016/11/28 291.70 2
数据清洗
通过输出结果我们可以看到,导入数据有一些需要清洗的地方:
- 购买日期(order_date)应该是datetime格式
- 购买金额(order_money)应转化为float格式
- 购买商品数(order_products)应为整数格式
- 需要检查是否有缺失值(null值),如果有需要处理
针对以上问题,我们需要进行数据清洗。我们可以通过以下代码实现:
# 将日期转化为datetime格式
df['order_date'] = pd.to_datetime(df['order_date'])
# 将购买金额转化为float格式
df['order_money'] = df['order_money'].astype(float)
# 将购买商品数转化为整数格式
df['order_products'] = df['order_products'].astype(int)
# 检查是否有缺失值,并剔除
print('清洗前数据总量:', len(df))
df = df.dropna()
print('清洗后数据总量:', len(df))
输出结果:
清洗前数据总量: 150
清洗后数据总量: 150
可以看到,数据清洗后一共剩余150条数据,无任何缺失值。
数据可视化
了解数据清洗后,我们可以通过数据可视化的方式更好地了解数据的分布、概况等信息。Pandas库内置了许多绘图方法,例如plot
、hist
、boxplot
等,方便我们进行数据可视化分析。
下面我们以“购买金额”为例进行数据可视化,展示其分布和概况:
import matplotlib.pyplot as plt
# 绘制购买金额折线图
df = df.sort_values(by='order_date')
fig = plt.figure(figsize=(10, 5))
plt.plot(df['order_date'], df['order_money'])
plt.xlabel('Order Date')
plt.ylabel('Order Money')
plt.title('Money Trend of Purchase Behavior')
# 绘制购买金额的直方图
fig = plt.figure(figsize=(10, 5))
df['order_money'].hist(bins=30)
plt.xlabel('Order Money')
plt.ylabel('Frequency')
plt.title('Histogram of Money')
plt.show()
输出结果:
可以看到,通过两张图表展示了购买金额的分布和趋势,很好地反映了用户消费习惯。
聚合分析
在数据可视化后,我们还可以通过聚合分析更深入地了解数据并做出决策。例如,我们通过以下代码统计每个用户的消费行为,计算总消费金额、总购买次数、最近购买时间、平均购买金额等指标。
# 分组聚合求每个用户的总消费金额、总购买次数、最近购买时间、平均购买金额
df_group = df.groupby('user_id').agg({
'order_money': 'sum',
'order_products': 'count',
'order_date': 'max',
'order_money': 'mean'
})
print(df_group.head())
输出结果:
order_money order_products order_date
user_id
9804784 104.420000 2 2017-08-12
10552731 111.883333 3 2015-05-02
10602796 170.769231 13 2017-08-31
10811222 128.040000 2 2017-09-06
10863980 39.900000 1 2016-01-04
可以看到,通过聚合分析,我们可以更好地了解每个用户的消费情况,并为推出相应的营销策略提供依据。
总结
本篇文章介绍了基于pandas
库进行数据分析的全流程,包括准备数据、数据清洗、数据可视化、聚合分析等多个方面。掌握了这些技能,我们可以更好地了解数据背后的真实情况,并为后期的决策提供可靠的数据支持。
继续深入学习数据分析,可以使我们应对更多的数据清洗、数据可视化、聚合分析等场景,并通过数据驱动决策来优化业务流程和提升整体效率。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用实战玩转pandas数据分析(一)——用户消费行为分析(python) - Python技术站