返回顶部
首页 > 资讯 > 精选 >怎么用Pandas构建数据
  • 105
分享到

怎么用Pandas构建数据

2023-06-29 00:06:19 105人浏览 薄情痞子
摘要

本文小编为大家详细介绍“怎么用pandas构建数据”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用Pandas构建数据”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。构建数据本案例中用的数据是小编自行模拟的,

本文小编为大家详细介绍“怎么用pandas构建数据”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用Pandas构建数据”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

构建数据

本案例中用的数据是小编自行模拟的,主要包含两个数据:订单数据和水果信息数据,并且会将两份数据合并

import pandas as pdimport numpy as npimport randomfrom datetime import *import timeimport plotly.express as pximport plotly.graph_objects as Goimport plotly as py# 绘制子图from plotly.subplots import make_subplots

时间字段

怎么用Pandas构建数据

水果和用户

怎么用Pandas构建数据

生成订单数据

order = pd.DataFrame({    "time":time_range,  # 下单时间    "fruit":fruit_list,  # 水果名称    "name":name_list,  # 顾客名    # 购买量    "kilogram":np.random.choice(list(range(50,100)), size=len(time_range),replace=True) })order

怎么用Pandas构建数据

生成水果的信息数据

infortmation = pd.DataFrame({    "fruit":fruits,    "price":[3.8, 8.9, 12.8, 6.8, 15.8, 4.9, 5.8, 7],    "region":["华南","华北","西北","华中","西北","华南","华北","华中"]})infortmation

怎么用Pandas构建数据

数据合并

将订单信息和水果信息直接合并成一个完整的DataFrame,这个df就是接下来处理的数据

怎么用Pandas构建数据

生成新的字段:订单金额

怎么用Pandas构建数据

到这里你可以学到:

  • 如何生成时间相关的数据

  • 如何从列表(可迭代对象)中生成随机数据

  • Pandas的DataFrame自行创建,包含生成新字段

  • Pandas数据合并

分析维度1:时间

2019-2021年每月销量走势

先把年份和月份提取出来:

df["year"] = df["time"].dt.yeardf["month"] = df["time"].dt.month# 同时提取年份和月份df["year_month"] = df["time"].dt.strftime('%Y%m')df

怎么用Pandas构建数据

查看字段类型:

怎么用Pandas构建数据

分年月统计并展示:

# 分年月统计销量df1 = df.groupby(["year_month"])["kilogram"].sum().reset_index()fig = px.bar(df1,x="year_month",y="kilogram",color="kilogram")fig.update_layout(xaxis_tickangle=45)   # 倾斜角度fig.show()

怎么用Pandas构建数据

2019-2021销售额走势

df2 = df.groupby(["year_month"])["amount"].sum().reset_index()df2["amount"] = df2["amount"].apply(lambda x:round(x,2))fig = go.Figure()fig.add_trace(go.Scatter(  #    x=df2["year_month"],    y=df2["amount"],    mode='lines+markers', # mode模式选择    name='lines')) # 名字fig.update_layout(xaxis_tickangle=45)   # 倾斜角度fig.show()

怎么用Pandas构建数据

年度销量、销售额和平均销售额

怎么用Pandas构建数据

分析维度2:商品

水果年度销量占比

df4 = df.groupby(["year","fruit"]).agg({"kilogram":"sum","amount":"sum"}).reset_index()df4["year"] = df4["year"].astype(str)df4["amount"] = df4["amount"].apply(lambda x: round(x,2))from plotly.subplots import make_subplotsimport plotly.graph_objects as gofig = make_subplots(    rows=1,     cols=3,    subplot_titles=["2019年","2020年","2021年"],    specs=[[{"type": "domain"},   # 通过type来指定类型           {"type": "domain"},           {"type": "domain"}]])  years = df4["year"].unique().tolist()for i, year in enumerate(years):    name = df4[df4["year"] == year].fruit    value = df4[df4["year"] == year].kilogram        fig.add_traces(go.Pie(labels=name,                        values=value                       ),                 rows=1,cols=i+1                )fig.update_traces(    textposition='inside',   # 'inside','outside','auto','none'    textinfo='percent+label',    insidetextorientation='radial',   # horizontal、radial、tangential    hole=.3,    hoverinfo="label+percent+name")fig.show()

怎么用Pandas构建数据

各水果年度销售金额对比

years = df4["year"].unique().tolist()for _, year in enumerate(years):        df5 = df4[df4["year"]==year]    fig = go.Figure(go.Treemap(         labels = df5["fruit"].tolist(),        parents = df5["year"].tolist(),        values = df5["amount"].tolist(),        textinfo = "label+value+percent root"    ))        fig.show()

怎么用Pandas构建数据

怎么用Pandas构建数据

怎么用Pandas构建数据

商品月度销量变化

怎么用Pandas构建数据

fig = px.bar(df5,x="year_month",y="amount",color="fruit")fig.update_layout(xaxis_tickangle=45)   # 倾斜角度fig.show()

怎么用Pandas构建数据

折线图展示的变化:

怎么用Pandas构建数据

分析维度3:地区

不同地区的销量

怎么用Pandas构建数据

怎么用Pandas构建数据

不同地区年度平均销售额

df7 = df.groupby(["year","region"])["amount"].mean().reset_index()

怎么用Pandas构建数据

分析维度4:用户

用户订单量、金额对比

df8 = df.groupby(["name"]).agg({"time":"count","amount":"sum"}).reset_index().rename(columns={"time":"order_number"})df8.style.background_gradient(cmap="Spectral_r")

怎么用Pandas构建数据

用户水果喜好

根据每个用户对每种水果的订单量和订单金额来分析:

df9 = df.groupby(["name","fruit"]).agg({"time":"count","amount":"sum"}).reset_index().rename(columns={"time":"number"})df10 = df9.sort_values(["name","number","amount"],ascending=[True,False,False])df10.style.bar(subset=["number","amount"],color="#a97fcf")

怎么用Pandas构建数据

px.bar(df10,       x="fruit",       y="amount",#            color="number",       facet_col="name"      )

怎么用Pandas构建数据

用户分层—RFM模型

RFM模型是衡量客户价值和创利能力的重要工具和手段。

通过这个模型能够反映一个用户的交期交易行为、交易的总体频率和总交易金额3项指标,通过3个指标来描述该客户的价值状况;同时依据这三项指标将客户划分为8类客户价值:

  • Recency(R)是客户最近一次购买日期距离现在的天数,这个指标与分析的时间点有关,因此是变动的。理论上客户越是在近期发生购买行为,就越有可能复购

  • Frequency(F)指的是客户发生购买行为的次数–最常购买的消费者,忠诚度也就较高。增加顾客购买的次数意味着能占有更多的时长份额。

  • Monetary value(M)是客户购买花费的总金额。

怎么用Pandas构建数据

下面通过Pandas的多个方法来分别求解这个3个指标,首先是F和M:每位客户的订单次数和总金额

怎么用Pandas构建数据

如何求解R指标呢?

先求解每个订单和当前时间的差值

怎么用Pandas构建数据

根据每个用户的这个差值R来进行升序排列,排在第一位的那条数据就是他最近购买记录:以xiaoming用户为例,最近一次是12月15号,和当前时间的差值是25天

怎么用Pandas构建数据

根据用户去重,保留第一条数据,这样便得到每个用户的R指标:

怎么用Pandas构建数据

数据合并得到3个指标:

怎么用Pandas构建数据

怎么用Pandas构建数据

当数据量足够大,用户足够多的时候,就可以只用RFM模型来将用户分成8个类型

用户复购周期分析

复购周期是用户每两次购买之间的时间间隔:以xiaoming用户为例,前2次的复购周期分别是4天和22天

怎么用Pandas构建数据

下面是求解每个用户复购周期的过程:

每个用户的购买时间升序

怎么用Pandas构建数据

将时间移动一个单位:

怎么用Pandas构建数据

合并后的差值:

出现空值是每个用户的第一条记录之前是没有数据,后面直接删除了空值部分

怎么用Pandas构建数据

怎么用Pandas构建数据

直接取出天数的数值部分:

怎么用Pandas构建数据

复购周期对比

px.bar(df16,       x="day",       y="name",       orientation="h",       color="day",       color_continuous_scale="spectral"   # purples      )

怎么用Pandas构建数据

上图中矩形越窄表示间隔越小;每个用户整个复购周期由整个矩形长度决定。查看每个用户的整体复购周期之和与平均复购周期:

怎么用Pandas构建数据

得到一个结论:Michk和Mike两个用户整体的复购周期是比较长的,长期来看是忠诚的用户;而且从平均复购周期来看,相对较低,说明在短时间内复购活跃。

从下面的小提琴中同样可以观察到,Michk和Mike的复购周期分布最为集中。

怎么用Pandas构建数据

读到这里,这篇“怎么用Pandas构建数据”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: 怎么用Pandas构建数据

本文链接: https://lsjlt.com/news/321472.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么用Pandas构建数据
    本文小编为大家详细介绍“怎么用Pandas构建数据”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用Pandas构建数据”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。构建数据本案例中用的数据是小编自行模拟的,...
    99+
    2023-06-29
  • python中pandas数据结构是怎么样的
    这篇文章给大家分享的是有关python中pandas数据结构是怎么样的的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、Series是一个类似于一维数组的对象,由一组数据(各种NumPy数据类型)和一组相关数据标...
    99+
    2023-06-20
  • Pandas数据结构之Series的使用
    目录一. Series 简介二. 实例化 Series2.1 使用一维数组实例化2.2 使用字典实例化2.3 使用标量例化三.Series 简单使用3.1 为Series添加Name...
    99+
    2024-04-02
  • pandas知识点(数据结构)
    1.Series 生成一维数组,左边索引,右边值: In [3]: obj = Series([1,2,3,4,5]) In [4]: obj Out[4]: 0 1 1 2 2 3 3 4 4 5 dt...
    99+
    2023-01-30
    数据结构 知识点 pandas
  • 怎么用pandas从数据库读取数据
    使用pandas读取数据库数据,首先需要连接数据库,并使用pandas的read_sql_query函数从数据库中读取数据。以下是一...
    99+
    2024-03-07
    pandas 数据库
  • 怎么使用pandas读取数据
    要使用pandas读取数据,首先需要导入pandas库,然后使用pandas提供的函数来读取数据文件。以下是一个简单的示例,演示如何...
    99+
    2024-04-02
  • 数据库的建筑师:使用 DDL 构建数据结构
    数据库中的数据结构是数据的骨架,它定义了数据的存储方式、组织形式和访问权限。使用数据定义语言 (DDL) 构建数据结构是数据库管理系统 (DBMS) 中的一项基本任务。本文将详细介绍 DDL 中用于创建、修改和删除数据结构的常用命令。 ...
    99+
    2024-02-19
    数据定义语言 DDL CREATE ALTER DROP 数据建模 数据结构
  • Pandas 稀疏数据结构的实现
    目录简介Spare data的例子SparseArraySparseDtypeSparse的属性Sparse的计算SparseSeries 和 SparseDataFrame简介 ...
    99+
    2024-04-02
  • Python Pandas 中的数据结构详解
    目录1.Series1.1通过列表创建Series1.2通过字典创建Series2.DataFrame3.索引对象 4.查看DataFrame的常用属性前言: Pandas...
    99+
    2024-04-02
  • Pandas常用的数据结构和常用的数据分析技术
    目录DataFrame的应用窗口计算相关性判定Index的应用范围索引分类索引多级索引日期时间索引分组聚合数据透视表数据合并数据清洗数据可视化Pandas是一个强大的数据处理库,它提...
    99+
    2023-05-18
    Pandas数据结构 Pandas数据分析
  • 数据结构可视化网站怎么构建
    要构建一个数据结构可视化网站,可以按照以下步骤进行:1. 确定网站的目标和功能:确定网站要展示的数据结构种类、展示方式、交互方式等。...
    99+
    2023-06-13
    数据结构可视化网站
  • 怎么在python中利用pandas创建一个Series数据类型
    今天就跟大家聊聊有关怎么在python中利用pandas创建一个Series数据类型,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python可以做什么Python是一种编程语言,内...
    99+
    2023-06-14
  • SpringBoot中怎么利用AOP构建多数据源
    SpringBoot中怎么利用AOP构建多数据源,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。当在业务层需要涉及到查询多种同数据库的场景下,我们通常需要在执行sql的时候动...
    99+
    2023-06-16
  • pandas怎么写入数据库
    在使用Pandas将数据写入数据库时,首先需要连接到数据库。常见的Python库用于连接数据库的有`psycopg2`、`mysql...
    99+
    2023-09-15
    pandas 数据库
  • 怎么使用Pandas进行数据读取
    本文小编为大家详细介绍“怎么使用Pandas进行数据读取”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用Pandas进行数据读取”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。使用pandas进行数据读取,...
    99+
    2023-07-05
  • PythonPandas学习之Pandas数据结构详解
    目录1 Pandas介绍2 Pandas数据结构2.1 Series2.2 DataFrame1 Pandas介绍 2008年WesMcKinney开发出的库 专门用于数据挖掘的开源...
    99+
    2024-04-02
  • Pandas数据结构中Series属性详解
    目录Series属性Series属性列表Series属性详解Series属性 Series属性列表 属性说明Series.index系列的索引(轴标签)Series.array系列或...
    99+
    2024-04-02
  • Python Pandas数据结构的示例分析
    这篇文章将为大家详细讲解有关Python Pandas数据结构的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1 Pandas介绍2008年WesMcKinney开发出的库专门用于数据挖...
    99+
    2023-06-29
  • NoSQL数据库中怎么构建索引
    在NoSQL数据库中建立索引可以提高查询性能和数据访问速度。通常情况下,NoSQL数据库会根据指定的字段或属性来建立索引。以下是一些...
    99+
    2024-05-07
    NoSQL
  • 怎么使用ADO.NET Entity Framework构建数据访问层
    这篇文章主要介绍“怎么使用ADO.NET Entity Framework构建数据访问层”,在日常操作中,相信很多人在怎么使用ADO.NET Entity Framework构建数据访问层问题上存在疑惑,小编查阅了各式资料,整理出简单好用的...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作