matplotlib和pandas经典操作
1. 导入数据
import pandas as pd #导入Pandas df_sales_02 = pd.read_csv('订单记录.csv') #载入数据 df_sales_02.head() #显示头几行数据
2. 数据可视化
import matplotlib.pyplot as plt #导入Matplotlib的pyplot模块 #构建月度的订单数的DataFrame df_sales_02['消费日期'] = pd.to_datetime(df_sales_02['消费日期']) #转化日期格式 df_orders_monthly = df_sales_02.set_index('消费日期')['订单号'].resample('M').nunique() #设定绘图的画布 ax = pd.DataFrame(df_orders_monthly.values).plot(grid=True,figsize=(12,6),legend=False) ax.set_xlabel('月份') # X轴label ax.set_ylabel('订单数') # Y轴Label ax.set_title('月度订单数') # 图题 #设定X轴月份显示格式 plt.xticks( range(len(df_orders_monthly.index)), [x.strftime('%m.%Y') for x in df_orders_monthly.index], rotation=45) plt.show() # 绘图
=================================================================================
1. pandas的经典操作
df_sales_02 = df_sales_02.loc[df_sales_02['数量'] > 0] #清洗掉数量小于等于0的数据
2. 特征工程
df_sales_02['总价'] = df_sales_02['数量'] * df_sales_02['单价'] #计算每单的总价 df_sales_02.head() #显示头几行数据
3. 构建User用户表
df_user_02 = pd.DataFrame(df_sales_02['用户码'].unique()) #生成以用户码为主键的结构df_user df_user_02.columns = ['用户码'] #设定字段名 df_user_02 = df_user_02.sort_values(by='用户码',ascending=True).reset_index(drop=True) #按用户码排序 df_user_02 #显示df_user
4. 求R值
df_sales_02['消费日期'] = pd.to_datetime(df_sales_02['消费日期']) #转化日期格式 df_recent_buy_02 = df_sales_02.groupby('用户码').消费日期.max().reset_index() #构建消费日期信息 df_recent_buy_02.columns = ['用户码','最近日期'] #设定字段名 df_recent_buy_02['R值'] = (df_recent_buy_02['最近日期'].max() - df_recent_buy_02['最近日期']).dt.days #计算最新日期与上次消费日期的天数 df_user_02 = pd.merge(df_user_02, df_recent_buy_02[['用户码','R值']], on='用户码') #把上次消费距最新日期的天数(R值)合并至df_user结构 df_user_02.head() #显示df_user头几行数据
5. 求F值
## F值: 同一个用户购买的次数 df_frequency_02 = df_sales_02.groupby('用户码').消费日期.count().reset_index() #按照用户码分组,重建索引 df_frequency_02.columns = ['用户码','F值'] df_user_03 = pd.merge(df_user_03, df_frequency_02[['用户码','F值']], on='用户码') #把上次消费距最新日期的天数(R值)合并至df_user结构 df_user_03.head() #显示df_user头几行数据
6. 求M值
## M值: 同一个用户从开始到现在的购买总额 df_amount_02 = df_sales_02.groupby('用户码').总价.sum().reset_index() #按照用户码分组,重建索引 df_amount_02.columns = ['用户码','M值'] df_user_03 = pd.merge(df_user_03, df_amount_02[['用户码','M值']], on='用户码') #把上次消费距最新日期的天数(R值)合并至df_user结构 df_user_03.head() #显示df_user头几行数据
用一个例子来演示会更加清晰
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
2021-03-15 慢查询日志分析命令
2021-03-15 MySQL IO高定位 pt-ioprofile