• 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头几行数据

  • 相关阅读:
    使用PowerDesigner对NAME和COMMENT互相转换
    HIMSS EMRAM新版标准将于2018年1月1日生效
    [转]Scrapy简单入门及实例讲解
    转:Oracle 执行计划(Explain Plan) 说明
    mac 安全控制 允许安装任何来源的包
    [转]Python中出错:ImportError: No module named win32com.client
    Windows环境下安装配置Mosquitto服务及入门操作介绍
    Mosquitto--webServer应用测试结果
    Paho -物联网 MQTT C Cient的实现和详解
    mosquitto设置用户名和密码
  • 原文地址:https://www.cnblogs.com/hixiaowei/p/16010658.html
Copyright © 2020-2023  润新知